2015-11-05 59 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, ",") };