2015-11-05 25 views
3

我只想要s.split(",")中的第一个元素,并且需要将值返回到String数组中。Java - 将字符串拆分为一个数组的更好方法

我该如何让这段代码成为一个班轮?

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

我试图s.split(",",1);但它只是这一切意味着第一个元素,而无需实际分裂它。

+0

所以,你想要一个字符串数组,其中第一个元素是s'的'0的子串的索引第一次出现','对吗?为什么不''sd [] = {s.split(“,”)}' – Arc676

+0

因为只需要第一个元素。是的,很容易从中得到第一个元素,但OP需要它在一行:) – Thevenin

+0

只需将第二行添加到第一行,不用换行符就可以了,而且您已经有了一行代码! – fabian

回答

9

您可以使用

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

如果你只需要以逗号分隔字符串的第一个令牌,使用substringindexOf会比split更有效。

当然,如果输入字符串不包含',',则此代码将引发异常。

+0

这也适用,谢谢。 –

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

完美,谢谢! –

1

如果你的Apache Commons Lang中,你可以简单地使用substringBefore

String[] sf = { StringUtils.substringBefore(s, ",") };