Sous-chaîne commençant à caractère spécifique comte
Comment choisissez-vous la dernière partie d'une chaîne qui commence à un certain nombre de caractères.
Pour exemple, j'aimerais obtenir tout le texte après la 3e virgule. mais j'obtiens un message d'erreur disant:
"StartIndex ne peut pas être inférieur à zéro."
Dim testString As String = "part, description, order, get this text, and this text"
Dim result As String = ""
result = testString.Substring(testString.IndexOf(",", 0, 3))
- Voulez-vous le texte après la troisième virgule, ou après la dernière virgule (qui se trouve être le même dans votre exemple)? Si vous avez l'entrée
"One, two, three, four, five and six"
, quel serait le résultat escompté?"four, five and six"
ou"five and six"
? - oui après la troisième virgule. je me dois de mettre un quatrième là, j'ai édité pour plus de clarté.
Vous devez vous connecter pour publier un commentaire.
Heres mes deux cents:
Le code "chaîne de test.IndexOf(",", 0, 3)" ne trouve pas le 3ème virgule. Il trouve la première virgule à partir de la position 0 à la recherche dans les 3 premières positions (c'est à dire les positions des caractères 0,1,2).
Si vous voulez la partie après la dernière virgule utiliser quelque chose comme ceci:
Note le +1 pour passer à l'caractères après la virgule. Vous devriez vraiment aussi trouver d'abord l'index et ajouter des vérifications pour confirmer que l'index n'est pas -1 et index < chaîne de test.Longueur trop.
Alternatives(je suppose que vous voulez tout le texte après la dernière virgule):
À L'Aide De LastIndexOf:
Expressions Régulières:
Le troisième argument de
indexOf
est le nombre de charcters de recherche. Vous êtes à la recherche pour,
de départ à0
pour3
personnages - qui est à la recherche de la chaîne depar
pour une virgule qui n'existe pas pour le retour de l'indice est-1
, d'où ton erreur. Je pense que vous auriez besoin d'utiliser certains de récursivité:La fonction IndexOf ne trouve que le "Première" du caractère spécifié. Le dernier paramètre (dans votre cas 3) spécifie le nombre de caractères d'examiner et de ne pas l'occurence.
Reportez-vous à Trouver Nième occurrence d'un caractère dans une chaîne
La fonction spécifiée ici trouve la Nième occurrence d'un caractère. Ensuite, utilisez la fonction substring sur l'occurance retourné.
Alternative , vous pouvez aussi utiliser une expression régulière pour trouver la nième occurrence.
Je pense que c'est ce que vous êtes à la recherche pour