2015-11-05 4 views
3

Мне нужен только первый элемент из s.split(","), и мне нужно вернуть значение в массив String.Java - лучший способ разделить строку на один массив

Как я могу сделать этот код одним вкладышем?

String [] sd = s.split(","); 
String [] sf = new String[]{sd[0]}; 

Я попытался s.split(",",1);, но это только добавляет все это на первый элемент, фактически разделив его.

+0

Так что вы хотите массив строк, где первый элемент является подстроку 's' от 0 до индекса первое вхождение ',' right? Почему не 'String sd [] = {s.split (", ")}' – Arc676

+0

Потому что нужен только первый элемент. Да, из этого легко получить первый элемент, но OP хочет его в одной строке :) – Thevenin

+0

Просто добавьте вторую строку в первую строку без новой строки inbetween, и у вас есть ваш однострочный! – fabian

ответ

9

Вы можете использовать

String [] sf = {sd.substring(0,sd.indexOf(','))}; 

Если вам нужен только первый токен, разделенных запятыми, с помощью substring и indexOf будет более эффективным, чем split.

Конечно, этот код генерирует исключение, если входная строка не содержит ','.

+0

Это работает, спасибо. –

9
String [] sf = new String[]{s.split(",")[0]}; 
+0

Отлично, спасибо! –

1

Если у вас есть Apache Commons Lang, вы можете просто использовать substringBefore:

String[] sf = { StringUtils.substringBefore(s, ",") }; 
Смежные вопросы