6

文字列内の一連の数字を括弧内の数字自体に置き換えようとしています。したがって、入力:

"i ee44 a1 1222"  

出力として持っている必要があります:

"i ee(44) a(1) (1222)"

String.replace(a,b) を使用して実装しようとしていますが、成功していません。

4

3 に答える 3

7
"i ee44 a1 1222".replaceAll("\\d+", "($0)");

これを試して、動作するかどうかを確認してください。

正規表現を使用する必要があるため、replaceAll代わりにreplace.

于 2013-10-24T21:35:31.400 に答える
3

を使用する必要がありますreplaceAll。このメソッドは 2 つの引数を使用します

  1. regex検索したい部分文字列
  2. replacement一致した部分文字列を置き換えるために使用する必要があるもの。

部分的には、where is group indexを介して正規表現で一致するグループreplacementを使用できます。例えば$xx

"ab cdef".replaceAll("[a-z]([a-z])","-$1") 

新しい文字列が生成され、小文字 2 文字ごとに-現在一致する 2 番目の文字が置き換えられます (2 番目の文字は括弧で囲まれていることに注意してください。これは、グループ 1 にあることを意味するため、置換部分で使用できます$1)。結果は になります-b -d-f

これを使用して問題を解決してみてください。

于 2013-10-24T21:37:29.470 に答える
1

String.replaceAll正規表現で使用できます:

"i ee44 a1 1222".replaceAll("(\\d+)", "($1)");
于 2013-10-24T21:37:50.647 に答える