Comment faire pour obtenir l'Index de la deuxième virgule dans une chaîne de caractères
J'ai une chaîne de caractères dans un Tableau qui contient deux virgules ainsi que les tabulations et les espaces blancs. Je suis en train de couper les deux mots dans cette chaîne, les deux d'entre eux avant la virgule, j'ai vraiment ne se soucient pas des tabulations et des espaces blancs.
Ma Chaîne ressemble à ceci:
String s = "Address1 Chicago, IL Address2 Detroit, MI"
Je obtenir l'index de la première virgule
int x = s.IndexOf(',');
Et à partir de là, j'ai coupé la corde avant que l'indice de la première virgule.
firstCity = s.Substring(x-10, x).Trim() //trim white spaces before the letter C;
Alors, comment puis-je obtenir l'index de la deuxième virgule afin que je puisse obtenir mon autre chaîne?
J'apprécie vraiment votre aide!
- Sera la chaîne de toujours avoir 2 virgules?
- Vous souhaitez vous lancer dans l'apprentissage de regex maintenant.
- pourquoi ne pas vous
split(',')
et puis obtenir toutes les tranches dans un tableau? - Bonne question. Elle le fait parfois et parfois, il n'a pas 2 des virgules.
- Obtenir l'indice de la nième occurrence d'un caractère dans une chaîne de caractères
s.Split(',').Skip(1).First()
aurait pu faire le travail. Pas besoin de trouver des indices de caractères.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser le code comme ceci.
Vous devrez peut-être assurez-vous de ne pas aller à l'extérieur des limites de la chaîne de si. Je vais laisser cette partie à vous.
Je viens d'écrire cette méthode d'Extension, de sorte que vous pouvez obtenir le n-ième de l'indice de tout sous-chaîne dans une chaîne
Remarque: Dans cette application j'utilise 1 = tout d'abord, au lieu d'un 0 en fonction de l'indice. Cela peut facilement être modifié pour utiliser 0 pour le premier, par l'ajout d'un
nth++;
au début, et de changer le message d'erreur pour plus de clarté.