2012-04-13 38 views
0

我有困難的時候搞清楚如何分割像一個字符串以下內容:的Java:字符串分割成多元素

String str = "hi=bye,hello,goodbye,pickle,noodle 

這個字符串是從一個文本文件中讀取,我需要拆分字符串插入逗號之間的每個元素。所以我需要將每個元素分割成它們自己的字符串,而不管文本文件是什麼。請記住,每個元素可以是任意長度,並且可以有任何數量的「hi」等於的元素。有任何想法嗎?謝謝!

回答

5

使用split!

String[] set=str.split(","); 

然後訪問每個字符串作爲你組需要[...](所以,讓我們看看第三根弦,你會說:請將[2])。

作爲一個測試,你可以全部打印出來:

for(int i=0; i<set.length;i++){ 
    System.out.println(set[i]); 
} 
+0

或使用'Arrays.toString(套)'[測試] – amit 2012-04-13 19:24:36

+1

分裂是偉大的,因爲你可以使用正則表達式。例如: str.split(「,\\ s *」) 該代碼將在每個逗號和零個或多個(*)空格中拆分源字符串(str)。 – 2012-04-13 19:25:39

+1

謝謝!我不敢相信我以前從來沒有聽說過這種方法......謝謝! – MrDrProfessorTyler 2012-04-13 19:25:54

0

我想知道:你的意思是將其分割爲這樣:

"hi=bye" 
"hi=hello" 
"hi=goodbye" 
"hi=pickle" 
"hi=noodle" 

因爲一個簡單的分裂(」 「)不會這樣做。在給定的字符串中有「hi =」的目的是什麼?

也許,如果你的意思是砍HI =從字符串的前面,做這個:如果你需要更多的先進做法

String input = "hi=bye,hello,goodbye,pickle,noodle"; 
String hi[] = input.split(","); 
hi[0] = (hi[0].split("="))[1]; 
for (String item : hi) { 
    System.out.println(item); 
} 
+0

是的,我很確定他/她正在尋找什麼,儘管我沒有走得那麼遠,因爲拆分可以在開始時再次使用,並且將字符串組合起來應該相對容易。無論如何,看起來很難分開字符串,而不是對所有字符串應用「hi =」。 – 2012-04-13 19:29:46

1

,我建議番石榴的Splitter類:

Iterable<String> split = Splitter.on(',') 
           .omitEmptyStrings() 
           .trimResults() 
           .split(" bye,hello,goodbye,, , pickle, noodle "); 

這將消除前導空白或尾隨空白並省略空白匹配。這個類有一些更酷的東西,比如將你的字符串分解爲鍵/值對。

1
str = str.subString(indexOf('=')+1); // remove "hi=" part 
String[] set=str.split(","); 
+0

代碼已更正。 – sarwar026 2012-04-14 17:31:46