2012-02-21 25 views
10

Qual è il modo migliore per rimuovere la prima parola da una stringa in Java?Rimuovere la prima parola da una stringa in Java

Se ho

String originalString = "This is a string";

Voglio rimuovere la prima parola da esso e in forma effetti due stringhe -

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

risposta

27

Semplice.

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

uscita:

[This, is a string] 

EDIT:


In linea 2, al di sotto dei valori vengono memorizzati nella matrice arr. Accedili come normali matrici.

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

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

Dal momento che la domanda è piuttosto semplice, avrete probabilmente bisogno di chiarire come ottenere la prima e la seconda parte della stringa dalla matrice restituita. –

+0

In realtà, mi è piaciuta la prima risposta. La stampa lo rende solo più vago. –

+1

Non penso che sarà necessario hehe. Sto solo cercando il modo migliore di fare questa semplice operazione in Java, come puoi vedere ci sono state alcune risposte diverse. –

0

È possibile controllare dove si trova il primo carattere di spazio e separato stringa.

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

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

È possibile utilizzare la classe StringTokenizer.

3

È possibile utilizzare substring

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

Prova questo utilizzando un indice var, penso che sia abbastanza efficiente:

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

Prima di JDK 1.7 usando sotto metodo potrebbe essere più efficiente, soprattutto se si stanno usando una stringa lunga (vedi questo article).

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

Per una risposta immediata è possibile utilizzare questo:

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, ""); 

di String replaceFirst e substring

0

inoltre è possibile utilizzare questa soluzione:

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

Esempio: substringer ("Questa è una stringa", "Questo");

3

Questa sarà sicuramente una buona soluzione

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

Non è il caso in cui non si sa quale sia la prima parola. –

Problemi correlati