2014-08-18 4 views
0

Я spliting строку, на вкладке, какКак вычислить длину вкладки до конца строки?

String s = "1"+"\t"+2+"\t"+3+"\t"+"4"; 
System.out.println("length : "+ s.split("\\t").length); 

В этом случае я получить длину 4. Но если я удалить последний элемент 4 & дают только пустой, как

String s = "1"+"\t"+2+"\t"+3+"\t"+""; 
System.out.println("Length : "+ s.split("\\t").length); 

В этом случае я получил вывод 3. это означает, что это не вычисление последней вкладки. В нижнем случае также мне нужна длина 4. Этот сценарий я использую в своем проекте &, получая нежелательный результат. Итак, пожалуйста, предложите мне, как рассчитать всю длину строки с разделителями табуляции, независимо от того, является ли последний элемент также пустым. Такие, как, если дело,

String s = "1"+"\t"+2+"\t"+3+"\t"+""; 
System.out.println("Length : "+ s.split("\\t").length); 

, то ответ должен быть 4 & если случай,

String s = "1"+"\t"+2+"\t"+3+"\t"+"" + "\t"+ ""; 
System.out.println("Length : "+ s.split("\\t").length); 

, то ответ должен быть 5.

Просьба предоставить мне соответствующий ответ.

+1

Вместо разделения строки и подсчета длины разделенного массива, почему бы не просто перебирать струны, и подсчет вкладок? Вы можете использовать метод 'String.matches()' для каждого символа и найти ответ таким образом. –

+0

Если вы ожидаете 5, сделайте 's.split (" \ t ", 5)'. Затем он даст 5 на 4 вкладках и 3 на двух вкладках. Также нужна только одна обратная косая черта. –

ответ

0

Чтобы предотвратить split от удаления завершающих пустых пространств, нужно использовать split(String regex, int limit) с отрицательным limit значения как

split("\t", -1) 
+0

Спасибо, Pshemo, теперь это прекрасно работает. –

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