10

Javaでスペースを削除する正規表現を作成するには?

例えば

Input  : "         "
Output : ""
---------------------
Input  : " "
Output : ""

タブと改行は削除しないでください。スペースのみを削除する必要があります。

編集 :

どうやって小切手を作るのですか?

たとえば、文字列にスペースのみ (任意の数) が含まれていることをifステートメントでチェックインする方法

  if(<statement>)
  {
              //inside statement
  }

為に

   input = "                   "  or input = "    "

コントロールはifステートメントの中に入る必要があります。

4

4 に答える 4

13

次のようにします。

str = str.replaceAll(" ", "");

または:

str = str.replaceAll(" +", "");

私のベンチマークでは、後者は前者よりも最大 40% 高速でした。

于 2012-05-15T07:32:09.187 に答える
1

できるよ -

str = str.replace(" ", "");
str = str.replaceAll(" +", "");

replaceとメソッドの定義を確認するとreplaceAll-

public String replace(CharSequence target, CharSequence replacement) {
        return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
            this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
    }

public String replaceAll(String regex, String replacement) {
   return Pattern.compile(regex).matcher(this).replaceAll(replacement);
}

本当に正規表現を置き換える必要がない限り、replaceAll私たちの選択ではありません。パフォーマンスが許容範囲内であっても、作成されるオブジェクトの量はパフォーマンスに影響を与えます。

の場合、正規表現のコンパイル時間(およびおそらくマッチャーの実行時間)が少し短くなることreplaceAll()を除いて、とそれほど違いはありません。むしろメソッドを使用する方が良いです。replaceAll()replacereplaceAll

リアルタイム比較

File size -> 6458400
replaceAll -> 94 millisecond
replace -> 78 millisecond
于 2012-05-15T07:56:00.460 に答える
0

簡単に試してみません/[ ]+/か?これはあなたが必要とするものです。

于 2012-05-15T07:34:00.937 に答える