2011-08-25 68 views
57

¿Cómo ignorar los primeros 10 caracteres de una cadena?¿Cómo eliminar los primeros 10 caracteres de una cadena?

de entrada:

str = "hello world!"; 

Salida:

d! 
+7

string.Substring (9); donde 9 es índice de inicio – Waqas

+0

Recuerde verificar primero que la cadena tenga al menos 10 caracteres u obtendrá una excepción. – Jonathan

+0

¿Por qué la subcadena no es compatible (startIndex, endindex)? cada vez que tenemos que calcular la longitud .. :-( –

Respuesta

60
str = "hello world!"; 
str.Substring(10, str.Length-10) 

tendrá que realizar las comprobaciones de longitud demás esto generará un error

4

El Substring tiene un parámetro llamado startIndex. Configúrelo de acuerdo con el índice en el que desea comenzar.

1

Utilice el método de subcadena.

string s = "hello world"; 
s=s.Substring(10, s.Length-10); 
+2

arroja una excepción si la cadena es más corta que el índice de inicio –

143

str = str.Remove(0,10); Elimina los primeros 10 caracteres

o

str = str.Substring(10); crea una partida subcadena en el 11º personaje hasta el final de la cadena.

Para sus propósitos, deberían funcionar de manera idéntica.

1

Puede utilizar el método Substring método que toma un solo parámetro, que es el índice desde el que se comienza.

En mi código a continuación me ocupo del caso donde la longitud es menor que su índice de inicio deseado y cuando la longitud es cero.

string s = "hello world!"; 
s = s.Substring(Math.Max(0, Math.Min(10, s.Length - 1))); 
+0

actualmente devuelve el último carácter de la cadena si la cadena tiene menos de 10 caracteres de longitud. –

12

La subcadena es probablemente lo que usted desea, como otros señalaron. Pero solo para agregar otra opción a la mezcla ...

string result = string.Join(string.Empty, str.Skip(10)); 

¡Ni siquiera necesita comprobar la duración de esto! :) Si tiene menos de 10 caracteres, obtienes una cadena vacía.

1

Por:

var str = "hello world!"; 

Para obtener la cadena resultante sin los primeros 10 caracteres y una cadena vacía si la cadena es menor o igual en longitud a 10 se puede utilizar:

var result = str.Length <= 10 ? "" : str.Substring(10); 

o

var result = str.Length <= 10 ? "" : str.Remove(0, 10); 

Se prefiere la primera variante ya que solo necesita un parámetro de método.

0

No es necesario especificar la longitud en el método Substring. Por lo tanto :

string s = hello world; 
string p = s.Substring(3); 

p habrá:

"mundo lo".

La única excepción que necesita para atender a si es ArgumentOutOfRangeException startIndex es menor que cero o mayor que la longitud de esta instancia.

1

Puede eliminar Char mediante el siguiente línea,

: - En primer lugar comprobar esa cadena tiene suficiente carbón para eliminar, como

string temp="Hello Stack overflow"; 
    if(temp.Length>10) 
    { 
    string textIWant = temp.Remove(0, 10); 
    } 
2

SubString tiene dos métodos SOBRECARGA:

public string Substring(int startIndex);//The substring starts at a specified character position and continues to the end of the string. 

public string Substring(int startIndex, int length);//The substring starts at a specified character position and taking length no of character from the startIndex. 

Por lo tanto, para este escenario, puede usar el primer método como este a continuación:

var str = "hello world!"; 
str = str.Substring(10); 

Aquí la salida es:

d! 

Si usted puede aplicar codificación defensiva mediante la comprobación de su longitud.

Cuestiones relacionadas