今日、私はJavaで面白くてシンプルなもので遊んでいますが、率直に言って本当にそれについてはわかりません。たとえば、コードスニペットを参照してください:

if(StringUtils.hasLength(sText)
 {
     sText= sText.replaceAll(" ", " AND ");
}

私がしようとしているのは、文字列の間の空白をすべて削除することです。たとえば、 “Hello Google”のユーザーキーは、 “Hello AND Google”と置き換えられます。これは、ユーザーが単語間にスペースを1つだけ入力すると正しいことです。

"Hello Google"  ---> "Hello AND Google"

しかし、その間の多くのスペースでユーザー鍵はどうですか?例えば

"Hello           Google"  ---> "Hello AND AND AND AND AND Google"

上記は私が欲しいものではありません、私はそれを以下のように置き換えるべきですか?

if(StringUtils.hasLength(sText)
 {
     sText= sText.replaceAll(" ", " AND ");
     sText= sText.replaceAll("  ", " AND ");
     sText= sText.replaceAll("   ", " AND ");
     sText= sText.replaceAll("    ", " AND ");
     sText= sText.replaceAll("     ", " AND ");
}

私たちは好きなだけ多くのものを置き換えることができますが、これはあまり効果的ではありません。

解決策

この場合、正規表現を使用して解決する必要があります。

if(StringUtils.hasLength(sText)
 {
     sText= sText.replaceAll("\\s+", " AND ");
}

グレート、ちょうど私が欲しいもの、正規表現ロック!