パフォーマンスを考慮して、1つのスペースだけを残して内部のスペースをトリミングするにはどうすればよいですか?
Input: AA BB Output: AA BB Input: A A Output: A A
System.out.println(" AA BB".replaceAll("\\s+", " ").trim());
出力:
AA BB
注:ここにある他のソリューションのいくつかとは異なり、これは単一のタブを単一のスペースに置き換えます。タブがない場合は、代わりに「{2、}」を使用できます。これにより、さらに高速になります。
System.out.println(" AA BB".replaceAll(" {2,}", " ").trim());
最初の例で示したように、 2つ以上のスペース"\\s{2,}"
を1つのスペースに置き換え" "
、trim()
その後、先頭と末尾のスペースを削除します。
output = input.replaceAll("\\s{2,}", " ").trim();
s = s.replaceAll("\\s+", " " ).trim();
"Hello a a g g a gag gs gs@".replaceAll( "[ ]+{2}", " ") ).trim();
ここに正しい答えがあります、例えば:
s = s.replaceAll("\\s+", " " ).trim();
しかし、正しい質問を選ぶことも重要だと思います。String
正規表現を使用してトリミングについて質問するのではなく、トリミングについて質問してString
、回答者が最良の戦略を示すことができるようにしてはどうでしょうか。
正規表現を使用するよりも、スペースを折りたたむ方が良い方法があるかもしれません。確かに他の方法があります。