5

パフォーマンスを考慮して、1つのスペースだけを残して内部のスペースをトリミングするにはどうすればよいですか?

Input:
     AA     BB
Output:
AA BB

Input:
A      A
Output:
A A
4

5 に答える 5

11
System.out.println("     AA     BB".replaceAll("\\s+", " ").trim());

出力:

AA BB

注:ここにある他のソリューションのいくつかとは異なり、これは単一のタブを単一のスペースに置き換えます。タブがない場合は、代わりに「{2、}」を使用できます。これにより、さらに高速になります。

System.out.println("     AA     BB".replaceAll(" {2,}", " ").trim());
于 2009-11-26T21:39:43.363 に答える
7

最初の例で示したように、 2つ以上のスペース"\\s{2,}"を1つのスペースに置き換え" "trim()その後、先頭と末尾のスペースを削除します。

output = input.replaceAll("\\s{2,}", " ").trim();
于 2009-11-26T21:37:54.397 に答える
2
s = s.replaceAll("\\s+", " " ).trim();
于 2009-11-26T21:42:40.937 に答える
0

"Hello a a g g a   gag gs    gs@".replaceAll( "[ ]+{2}", " ") ).trim();

于 2009-11-26T21:38:53.663 に答える
0

ここに正しい答えがあります、例えば:

s = s.replaceAll("\\s+", " " ).trim();

しかし、正しい質問を選ぶことも重要だと思います。String正規表現を使用してトリミングについて質問するのではなく、トリミングについて質問してString、回答者が最良の戦略を示すことができるようにしてはどうでしょうか。

正規表現を使用するよりも、スペースを折りたたむ方が良い方法があるかもしれません。確かに他の方法があります。

于 2009-11-26T21:46:16.613 に答える