Javaで文字列をスペースでトークン化する方法があるかどうか疑問に思っていましたが、アポストロフィの間にいくつかの単語がある場合は、それを「1単語」と見なしてください...
たとえば、次の場合:
この「素晴らしい」日
文字列トークナイザーには次のものが必要です。
"This"
"is a great"
"day"
ありがとう!
Javaで文字列をスペースでトークン化する方法があるかどうか疑問に思っていましたが、アポストロフィの間にいくつかの単語がある場合は、それを「1単語」と見なしてください...
たとえば、次の場合:
この「素晴らしい」日
文字列トークナイザーには次のものが必要です。
"This"
"is a great"
"day"
ありがとう!
String.split()
ではなく と 正規表現を使用するとStringTokenizer
、次のようになります。
String input = "this \"is a great\" day";
for (String word: input.split("(?<=\").+(?=\")|\\b\\w+\\b"))
{
System.out.println("["+word+"]");
}
出力:
[this]
[is a great]
[day]
あなたの例から、アポストロフィ (') ではなく二重引用符 (") を意味すると思います。
NB:最初はもっと簡単なものを投稿しましたが、これはあなたの例では機能しましたが、次のような入力では機能しませんでした:
" yes this \"is a great\" day all right"