次のような文字列を分割する方法を理解するのに苦労しています。
String str = "hi=bye,hello,goodbye,pickle,noodle
この文字列はテキスト ファイルから読み取られたものであり、文字列をカンマ間の各要素に分割する必要があります。そのため、テキスト ファイルの内容に関係なく、各要素を独自の文字列に分割する必要があります。各要素の長さは任意であり、「hi」が等しい要素の数は任意であることに注意してください。何か案は?ありがとう!
スプリットを使おう!
String[] set=str.split(",");
次に、必要に応じて set[...] から各文字列にアクセスします (つまり、3 番目の文字列が必要な場合は、set[2] とします)。
テストとして、それらをすべて印刷できます。
for(int i=0; i<set.length;i++){
System.out.println(set[i]);
}
もう少し高度なアプローチが必要な場合は、guavaのSplitterクラスをお勧めします。
Iterable<String> split = Splitter.on(',')
.omitEmptyStrings()
.trimResults()
.split(" bye,hello,goodbye,, , pickle, noodle ");
これにより、先頭または末尾の空白が削除され、空白の一致が省略されます。このクラスには、文字列をキーと値のペアに分割するなど、さらに優れた機能が含まれています。
str = str.subString(indexOf('=')+1); // remove "hi=" part
String[] set=str.split(",");
私は疑問に思っています:あなたはそれをそのように分割するつもりですか:
"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);
}