2010-06-02 22 views

Respuesta

85

Puede utilizar el IndexOf method y la Substring method así:

string output = input.Substring(input.IndexOf('.') + 1); 

Lo anterior no tiene manejo de errores, por lo que si un período no existe en la cadena de entrada, presentará problemas.

+6

@casperOne En realidad, IndexOf no devuelve -1 si no se encuentra, y las cadenas son basadas en cero para referencia de subcadena, por lo que técnicamente si no hubiera un período devolvería toda la cadena, ¿no? Creo que esto es suficiente siempre que la cadena no sea nula. – jcolebrand

+0

@drachenstern: IndexOf devolverá -1 si no se encuentra, y si eso pasa a la subcadena, lanzará una ArgumentOutOfRangeException. – casperOne

+0

@casperOne ~ tut tut, its -1 '+ 1' ... por lo que será cero o más, siempre. Tu código no es mío;) – 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

Nota al margen: Esto da como resultado que se conserven ambas (o todas) partes de la cadena punteada, lo que es deseable si las necesita todas pero no las necesita si solo necesita la última. – Joey

20

Usted podría intentar esto:

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

Tendrá problemas si hay más de un período. –

+0

@MikeCole ¿Por qué? .Last() se asegurará de obtener la última palabra después de un período –

2

Un par de métodos que, si no existe el carbón, devuelven la cadena original.

Ésta corta la cadena después de la primera aparición del pivote:

public static string truncateStringAfterChar(string input, char pivot){   
    int index = input.IndexOf(pivot); 
    if(index >= 0) { 
     return input.Substring(index + 1);   
    }   
    return input;  
} 

Ésta vez corta la cadena después de la última aparición del pivote:

public static string truncateStringAfterLastChar(string input, char pivot){   
    return input.Split(pivot).Last(); 
} 
Cuestiones relacionadas