2013-11-15 5 views
1

Моя строка ввода являетсяКак удалить пустую строку из массива

String s = ",1,,2, ,3,4,5,,6"; 
String[] array = s.split(","); 
System.out.println(Arrays.toString(array)); 

Теперь я получаю этот выход

[, 1, , 2, , 3, 4, 5, , 6] 

Но ожидаемый выход

[1, 2, 3, 4, 5, 6] 
+0

сделать ваш вклад лучше. Надеюсь, это не реальный сценарий жизни? –

ответ

2

попробовать это

s.replaceAll("^[, ]+", "").split("[, ]+"); 
4

Используйте этот улучшенный regex, чтобы избежать пустого совпадения:

s.replaceFirst("^(*, *)+", "").split("(, *)+"); 
//=> [1, 2, 3, 4, 5, 6] 
+0

Спасибо, я получаю [, 1, 2, 3, 4, 5, 6]. Первый элемент - пустая строка. – Prabhakaran

+0

@ByteCode: просмотрите отредактированный код сейчас. – anubhava

+0

Чтобы удалить ведущие запятые, я бы: '"^*, + "'. –

1

Я бы разделил задачу. Во-первых, вам нужно обрезать любые запятые в начале или в конце.

После этого, вы можете разбить строку с помощью \s*,[,\s]*

+0

Спасибо, теперь я получаю [, 1, 2, 3, 4, 5, 6]. Первый элемент пустой строки – Prabhakaran

+0

Я сказал: «Во-первых, вам нужно обрезать любые запятые в начале или в конце». –

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