Comment supprimer efficacement tous les caractères dans la chaîne placée avant le caractère "."?Supprimer les caractères avant le caractère "."
Entrée: Amerika.USA
Sortie: USA
Comment supprimer efficacement tous les caractères dans la chaîne placée avant le caractère "."?Supprimer les caractères avant le caractère "."
Entrée: Amerika.USA
Sortie: USA
Vous pouvez utiliser le IndexOf
method et Substring
method comme ceci:
string output = input.Substring(input.IndexOf('.') + 1);
Ce qui précède n'a pas de gestion des erreurs, donc si une période n'existe pas dans la chaîne d'entrée, cela posera des problèmes.
@casperOne En fait, IndexOf ne retourne pas -1 s'il n'est pas trouvé, et les chaînes sont zerobased pour la référence de la sous-chaîne, donc techniquement s'il n'y avait pas de période, elle retournerait toute la chaîne, non? Je pense que c'est suffisant tant que la chaîne n'est pas nulle. – jcolebrand
@drachenstern: IndexOf renverra -1 s'il n'est pas trouvé, et si cela est passé à Substring, il lancera une ArgumentOutOfRangeException. – casperOne
@casperOne ~ tut tut, son -1 '+ 1' ... donc ce sera zéro ou plus, toujours. Votre code n'est pas le mien;) – jcolebrand
String input = ....;
int index = input.IndexOf('.');
if(index >= 0)
{
return input.SubString(index + 1);
}
string input = "America.USA"
string output = input.Substring(input.IndexOf('.') + 1);
public string RemoveCharactersBeforeDot(string s)
{
string splitted=s.Split('.');
return splitted[splitted.Length-1]
}
Note de côté: Ceci a pour résultat de conserver les deux (ou toutes) parties de la chaîne pointée, ce qui est souhaitable si vous en avez besoin, mais pas nécessaire si vous avez seulement besoin du dernier. – Joey
Vous pouvez essayer ceci:
string input = "lala.bla";
output = input.Split('.').Last();
Vous aurez des problèmes s'il y a plus d'une période. –
@MikeCole Pourquoi? .Last() s'assurera que vous obtenez le dernier mot après une période –
Deux méthodes qui, si le charbon n'existe pas, retourne la chaîne d'origine.
Celui-ci coupe la chaîne après la première occurrence du pivot:
public static string truncateStringAfterChar(string input, char pivot){
int index = input.IndexOf(pivot);
if(index >= 0) {
return input.Substring(index + 1);
}
return input;
}
Celui-ci coupe à la place la chaîne après la dernière occurrence du pivot:
public static string truncateStringAfterLastChar(string input, char pivot){
return input.Split(pivot).Last();
}
est-il toujours que va être une période? –
@James Black: oui – loviji