例: 実行後、文字列の出力は厳密に同じである必要があります"hello world yo"
。"hello world yo"
さらに、出力は次のようになりますString[]
。
String[0] == "hello"; String[1] == "world"; String[2] == "yo";
後者の効果的な単語を他の方法で処理できるようにします。
と考えてString.split(" ")
いたのですが、単語間の空白が不確かで、例外が発生します..
使用できます
String.split("\\s+") // one or more whitespace.
文字列の比較には使用==
しないでください。代わりに使用してくださいString.equals()
コメントで質問を編集
表記は何といいますか?1 つ以上の "_" または "\n" がある場合はどうなりますか?
ご覧のとおり、 String#split() APIは正規表現をパラメーターとして受け入れます。は空白の\s
簡略文字クラスですが+
、 は前の項目を 1 回以上繰り返すために使用されます。
今、文字列を分割したい場合
_
すなわち。アンダースコア -->"this__is_test".split("[_]+");
\n
すなわち。改行 -->"this__is_test\n new line".split("\\r?\\n");
で分割できます"\\s+"
。これは、1 つ以上の空白文字で分割されます。
String.split()
正規表現を取るので、簡単に実行できますString.split(" +")
。
分割関数は正規表現を取ると思いますが、そうでない場合は以下が機能します。
この正規表現は正しくないかもしれませんが、あなたがやろうとしていることの概念を示しています。
Pattern p = Pattern.compile("(.*?) *(.*)");
Matcher m = p.matcher(s);
if (m.matches()) {
String name = m.group(1);
String value = m.groupo(2);
}
for (int i = 1; i<=m.groupCount(); i++) {
System.out.println(m.group(i));
}