たとえば、「x(10, 9, 8)」という文字列があります。文字列から各整数を読み取り、その整数を配列インデックスとして使用して、配列から新しい整数を取得し、それをこの値に置き換えます。
私が試したすべての方法は、同じことをすべての整数に適用するか、単に整数を取得して追跡を失うことに適しているようです。誰でもこれを行うための最良の方法を教えてもらえますか?
正規表現を使用すると、区切り方に関係なく、文字列内の各数値を「参照」し、必要に応じて置き換えることができます。たとえば、次のコードは次のように表示されますx(101, 99, 88)
。
public static void main(String[] args) {
int[] array = {0, 1, 2, 3, 4, 5, 6, 7, 88, 99, 101};
String s = "x(10, 9, 8)";
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(s);
StringBuilder replace = new StringBuilder();
int start = 0;
while(m.find()) {
//append the non-digit part first
replace.append(s.substring(start, m.start()));
start = m.end();
//parse the number and append the number in the array at that index
int index = Integer.parseInt(m.group());
replace.append(array[index]);
}
//append the end of the string
replace.append(s.substring(start, s.length()));
System.out.println(replace);
}
注: 例外処理を追加する必要があります。
Integer.parseInt()
、String.split(",")
、およびString.indexOf()
( および に対して(
を使用して、文字列の数値を解析します。それらを使用して を)
作成List
します。
このリストを繰り返し処理し、配列の値を使用して新しいリストを作成します。
新しいリストを繰り返し処理し、応答文字列を作成します。