2012-02-21 43 views
10

¿Cuál es la mejor manera de eliminar la primera palabra de una cadena en Java?Eliminar la primera palabra de una cadena en Java

Si tengo

String originalString = "This is a string";

Quiero quitar la primera palabra de la misma y en forma efecto de dos cuerdas -

removedWord = "This" 
originalString = "is a string; 

Respuesta

27

Simple.

String o = "This is a string"; 
System.out.println(Arrays.toString(o.split(" ", 2))); 

de salida:

[This, is a string] 

EDIT:


En la línea 2 por debajo de los valores se almacenan en la matriz arr. Acceda a ellos como arreglos normales.

String o = "This is a string"; 
String [] arr = o.split(" ", 2); 

arr[0] // This 
arr[1] // is a string 
+0

Dado que la cuestión es bastante básico, es probable que necesite para aclarar cómo conseguir la primera y segunda parte de la cadena de la matriz devuelta. –

+0

En realidad, me gustó más tu primera respuesta. La impresión solo lo hace más vago. –

+1

No creo que sea necesario, jeje. Solo busco la MEJOR forma de hacer esta simple operación en Java, como puede ver, ha habido algunas respuestas diferentes. –

0

Puede comprobar dónde está el primer carácter de espacio y separada cuerda.

String full = "Sample Text"; 
String cut; 
int pointToCut = full.indexOf(' '); 

if (offset > -1) 
{ 
    cut = full.substring(space + 1); 
} 
-1

Puede utilizar la clase StringTokenizer.

3

Puede utilizar substring

removedWord = originalString.substring(0,originalString.indexOf(' ')); 
originalString = originalString.substring(originalString.indexOf(' ')+1); 
1

Prueba esto utilizando un índice var, creo que es bastante eficiente:

int spaceIdx = originalString.indexOf(" "); 
String removedWord = originalString.substring(0,spaceIdx); 
originalString = originalString.substring(spaceIdx); 

Antes de JDK 1.7 mediante el siguiente método podría ser más eficiente, especialmente si están usando cadenas largas (vea esto article).

originalString = new String(originalString.substring(spaceIdx)); 
2

Para una respuesta inmediata puede utilizar esto:

removeWord = originalString.substring(0,originalString.indexOf(' ')); 
originalString = originalString.substring(originalString.indexOf(' ')); 
0
String str = "This is a string";  

String str2=str.substring(str.indexOf(" ")); 
String str3=str.replaceFirst(str2, ""); 

de cadena replaceFirst y substring

0

también puede utilizar esta solución:

static String substringer(String inputString, String remove) { 
    if (inputString.substring(0, remove.length()).equalsIgnoreCase(remove)) { 
     return inputString.substring(remove.length()).trim(); 
    } 
    else { 
      return inputString.trim(); 
    } 
} 

Ejemplo: substringer ("Esto es una cadena", "Esto");

3

Esto sin duda una buena solución

String originalString = "This is a string"; 
    originalString =originalString.replaceFirst("This ", ""); 
+4

No es el caso cuando no sabes cuál es la primera palabra. –

Cuestiones relacionadas