2017-09-11 4 views
0

Ich möchte auf dem ersten Auftreten einer Zeichenfolge basierend aufzuspalten, aber wenn ich versuche, String.split („\ _“, 1) zu verwenden - Es gibt mir arrayOutOfBounds AusnahmeSplitting String basierend auf Auftreten

array[0] = "this_first"; 
array[1] = "Not_first"; 
array[2] = "Maybe_Like_this"; 
array[3] = "This_is_definitely_it"; 

for(int i=0;i<array.length;i++){ 
     tmparr = array[i].split("\\_"); 
     firstWord = tmparr[0]; 
     System.out.println(firstWord); 
     tempString = tmparr[1]; 

Ich möchte nur das erste Wort in tmparr [0] und rest alle in tmparr [1]. Bitte Beratung

Antwort

1

Der limit Parameter für String#split(String, int) ist ein wenig seltsam definiert. Gehen Sie zurück und lesen Sie das Javadoc, besonders den Absatz, der "Der Begrenzungsparameter ..." beginnt.

TL; DR: Was Sie wahrscheinlich benötigen, ist dieses:

tmparr = array[i].split("_", 2); 

(Aufkantung auch nicht erforderlich)