文字列内の一連の数字を括弧内の数字自体に置き換えようとしています。したがって、入力:
"i ee44 a1 1222"
出力として持っている必要があります:
"i ee(44) a(1) (1222)"
String.replace(a,b) を使用して実装しようとしていますが、成功していません。
"i ee44 a1 1222".replaceAll("\\d+", "($0)");
これを試して、動作するかどうかを確認してください。
正規表現を使用する必要があるため、replaceAll
代わりにreplace
.
を使用する必要がありますreplaceAll
。このメソッドは 2 つの引数を使用します
regex
検索したい部分文字列replacement
一致した部分文字列を置き換えるために使用する必要があるもの。部分的には、where is group indexを介して正規表現で一致するグループreplacement
を使用できます。例えば$x
x
"ab cdef".replaceAll("[a-z]([a-z])","-$1")
新しい文字列が生成され、小文字 2 文字ごとに-
現在一致する 2 番目の文字が置き換えられます (2 番目の文字は括弧で囲まれていることに注意してください。これは、グループ 1 にあることを意味するため、置換部分で使用できます$1
)。結果は になります-b -d-f
。
これを使用して問題を解決してみてください。
String.replaceAll
正規表現で使用できます:
"i ee44 a1 1222".replaceAll("(\\d+)", "($1)");