質問

パフォーマンスを考慮して、スペースを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、}" を単一のスペース"に置き換えます。 " を実行し、その後 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 をトリミングするように頼み、答える人に最高の戦略を見せることを許可しないのはなぜですか?

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top