2010-06-02 10 views

Répondre

85

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.

+6

@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

+0

@drachenstern: IndexOf renverra -1 s'il n'est pas trouvé, et si cela est passé à Substring, il lancera une ArgumentOutOfRangeException. – casperOne

+0

@casperOne ~ tut tut, son -1 '+ 1' ... donc ce sera zéro ou plus, toujours. Votre code n'est pas le mien;) – jcolebrand

4
String input = ....; 
int index = input.IndexOf('.'); 
if(index >= 0) 
{ 
    return input.SubString(index + 1); 
} 
10
string input = "America.USA" 
string output = input.Substring(input.IndexOf('.') + 1); 
3
public string RemoveCharactersBeforeDot(string s) 
{ 
string splitted=s.Split('.'); 
return splitted[splitted.Length-1] 
} 
+0

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

20

Vous pouvez essayer ceci:

string input = "lala.bla"; 
output = input.Split('.').Last(); 
+3

Vous aurez des problèmes s'il y a plus d'une période. –

+0

@MikeCole Pourquoi? .Last() s'assurera que vous obtenez le dernier mot après une période –

2

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(); 
} 
Questions connexes