0

我很难弄清楚如何拆分如下字符串:

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

该字符串是从文本文件中读取的,我需要将字符串拆分为逗号之间的每个元素。因此,无论文本文件读取什么内容,我都需要将每个元素拆分为自己的字符串。请记住,每个元素可以是任意长度,并且可以有任意数量的 'hi' 等于的元素。有任何想法吗?谢谢!

4

4 回答 4

5

使用拆分!

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

然后根据需要从 set[...] 访问每个字符串(假设您想要第三个字符串,您会说:set[2])。

作为测试,您可以将它们全部打印出来:

for(int i=0; i<set.length;i++){
    System.out.println(set[i]);
}
于 2012-04-13T19:20:43.387 回答
1

如果您需要更高级的方法,我建议使用番石榴的Splitter类:

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

这将消除前导或尾随空格并省略空白匹配。该类中有一些更酷的东西,例如将您的字符串拆分为键/值对。

于 2012-04-13T19:32:26.747 回答
1
str = str.subString(indexOf('=')+1); // remove "hi=" part
String[] set=str.split(",");
于 2012-04-13T19:32:42.553 回答
0

我想知道:你的意思是这样拆分它:

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

因为一个简单的 split(",") 不会这样做。在给定字符串中包含“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);
}
于 2012-04-13T19:26:06.113 回答