2012-04-13 40 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