2015-09-02 6 views
3

У меня есть строка, как abc~def~ghij~klm~nop~qrstu~vwx~hj. Я хочу разбить его только два раза (до трех частей в результате): это означает, где бы я ни находился ~ символ Мне нужно разделить abc, def и третье, как только одну строку ghij~klm~nop~qrstu~vwx~hj.Разделить строку всего два раза

Я знаю, как разбить на строки, где ~ символа приходит

String[] parts = stat.split("~"); 
String part1 = parts[0]; 
String part2 = parts[1]; 
String part3 = parts[2]; 

Здесь я получаю только part3 в ghij, мне нужна вся строка остающуюся долго с ~ символом.

ответ

13

Это разбивает stat String, только два раза, то есть он делит его на 3 части:

String[] parts = stat.split("~", 3); 

String.split(String regex, int limit) метод позволяет за контроль над количеством полученных частей.

Цитируя Javadoc:

Предел параметр контролирует количество раз применяется шаблон и, следовательно, влияет на длину результирующего массива. Если предел n больше нуля, шаблон будет применен не более n - 1 раз, длина массива будет не больше n, а последняя запись массива будет содержать все входные данные за пределами последнего сопоставленного разделителя.

+0

Я думаю, что это лучший способ .. я проверил – Jocheved

+0

Да, это лучший и правильный путь. – Kedarnath

+0

Но как я получу третью часть ... Я получаю вторую часть в качестве третьей строки – Jocheved

2

использование ограничение to split().

String s="abc~def~ghij~klm~nop~qrstu~vwx~hj"; 
String[] parts = s.split("~",3); 
System.out.println(parts[0]); 
System.out.println(parts[1]); 
System.out.println(parts[2]);