2015-09-29 3 views
3

Когда я пытаюсь разделить значение String ",,1,", он возвращает массив размером три вместо четырех. Как я могу это исправить?разделение разделенных запятыми игнорируется последний элемент

код:

String values= ",,1,"; 
    values.split(","); 

возвращается:

[0]="" 
    [1]="" 
    [2]=1 
+2

использование 'values.split ("", -1)' –

ответ

4

Если вы хотите, то используйте отрицательное limit

public static void main(String... args) throws Exception { 
    String values= ",,1,"; 
    System.out.println(Arrays.toString(values.split(",", -1))); 
} 

O/P:

[, , 1, ] 
0

Это происходит только тогда, когда символ Seperator находится в конце строки

if (values.charAt(values.length()-1) == ',') 
    // Do something here 

просто проверить, если последний символ ваш символ Seperator ...

0
String values= ",,1,"; 
values.split(",",values.length()); 

Вы можете попробовать это

2

попробуйте следующее:

String values= ",,1,"; 
String[] val = values.split(",", -1); 

Два аргумента ион String.split(String regex, int limit)

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

Здесь Javadoc ссылка этого:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String,%20int%29

Смежные вопросы