Je veux un moyen le plus court d'obtenir 1er caractère de chaque mot dans une chaîne en c #.
Ce que j'ai fait est: p> Je veux afficher la même chose Sortie avec un moyen le plus court ... p> merci p> p>
7 Réponses :
var firstChars = str.Where((ch, index) => ch != ' '
&& (index == 0 || str[index - 1] == ' '));
Utilisez .split ("", stringsplitoptions.remoPeemptyentries) code> plutôt pour éviter les erreurs sur plusieurs espaces.
Je pense que votre solution est parfaitement bien, mais si vous voulez de meilleures performances, vous pouvez essayer:
str result = str.Split(" ").Select(y => y[0]).ToList();
Vous aurez un problème si la chaîne commence par ''.
Oui ... j'ai ajouté une note de réservation pour cela.
string str = "This is my style";
str.Split(' ').ToList().ForEach(i => Console.Write(i[0] + " "));
Utilisation de Array.foreach (str.split (''), s => console.write (s [0] + "")); code> serait légèrement plus court et plus rapide. Vous voudrez peut-être aussi utiliser stringsplitoptions.removeemptyentries code> pour gérer la situation où la chaîne commence par un espace ou contient des espaces consécutifs.
Les expressions régulières pourraient être la réponse:
Regex.Matches(text, @"\b(\w{1})")
.OfType<Match>()
.Select(m => m.Groups[1].Value)
.ToArray();
Imprimer la première lettre de chaque mot dans une chaîne sortie: p>
Pour moi, cela fonctionnait mieux que les autres et toujours très flexibles:
Comment c'est mieux que les autres si c'est la même réponse, mais avec une jointure?
@Leandro: Il vaut mieux que «simple folk» comme moi qui recherchent une méthode pour obtenir une abréviation pour un nom (John Doe => JD). Mais vous êtes correct, dans l'essence de la question, il n'y a rien de nouveau ou meilleur.
Je travaille avec une liste à l'aide de la considération de Luchh.
Eh bien, c'est à peu près le moyen le plus court.
En fait, je ne vois rien de mal avec cette méthode. C'est lisible et fait ce qu'il dit sur la boîte. Pourquoi voulez-vous plus court? Juste parce que quelque chose est plus court ne signifie pas que c'est lisible ou évident à ce que vous faites. Ce que vous avez ici n'a même pas besoin de commentaire.