0

次のような文字列を分割する方法を理解するのに苦労しています。

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

この文字列はテキスト ファイルから読み取られたものであり、文字列をカンマ間の各要素に分割する必要があります。そのため、テキスト ファイルの内容に関係なく、各要素を独自の文字列に分割する必要があります。各要素の長さは任意であり、「hi」が等しい要素の数は任意であることに注意してください。何か案は?ありがとう!

4

4 に答える 4

5

スプリットを使おう!

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

次に、必要に応じて set[...] から各文字列にアクセスします (つまり、3 番目の文字列が必要な場合は、set[2] とします)。

テストとして、それらをすべて印刷できます。

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

もう少し高度なアプローチが必要な場合は、guavaの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 に答える