1

たとえば、「x(10, 9, 8)」という文字列があります。文字列から各整数を読み取り、その整数を配列インデックスとして使用して、配列から新しい整数を取得し、それをこの値に置き換えます。

私が試したすべての方法は、同じことをすべての整数に適用するか、単に整数を取得して追跡を失うことに適しているようです。誰でもこれを行うための最良の方法を教えてもらえますか?

4

2 に答える 2

1

正規表現を使用すると、区切り方に関係なく、文字列内の各数値を「参照」し、必要に応じて置き換えることができます。たとえば、次のコードは次のように表示されます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);
}

注: 例外処理を追加する必要があります。

于 2013-04-17T18:14:48.920 に答える
0

Integer.parseInt()String.split(",")、およびString.indexOf()( および に対して(を使用して、文字列の数値を解析します。それらを使用して を)作成Listします。

このリストを繰り返し処理し、配列の値を使用して新しいリストを作成します。

新しいリストを繰り返し処理し、応答文字列を作成します。

于 2013-04-17T18:14:56.447 に答える