0

アルファベットの後ではなく前に置き換えたいアルファベットがあります。たとえば、「インスタント」という単語がある場合、「t」の後の文字「a」が「t」の前にあることを確認したいと思います。それはインスタントでなければなりません。いずれかの単語に 'a' がある場合は常に、前ではなく前に置き換える必要があります。これから抜け出す方法はありますか?

4

3 に答える 3

1

正規表現を使用して、必要なことを行うことができます。

<something>a一般に、a<something>どこに置き換えたいか<something>は、単一の文字、任意の文字です。

正規表現では、これは に置き換え(\\w)aられa$1ます。つまり、 an の前に何かがある場合を見つけて、aその何かをキャプチャします。a次に、キャプチャされた何かが続くに置き換えます。

public static void main(String[] args) throws Exception {
    final String s = "instant";
    System.out.println(s.replaceAll("(\\w)a", "a$1"));
}

出力:

insatnt
于 2013-07-30T13:36:10.900 に答える
1

あなたは一例しか挙げていないので、一般的な答えを投稿することはできません。多分あなたはそれを一般化することができます:

String input = "instant";
String replaced = input.replaceAll("(\\w)a", "a$1");
于 2013-07-30T13:35:04.960 に答える
0

古い学校の方法は、次のようなものです。

char reference_char = 'a';
String old_string = "instant";

char[] test_array = old_string.toCharArray();        
int i = 0;

for (char c : test_array) {
    if (i > 0) {
        if (c == reference_char) {
            test_array[i] = test_array[i - 1];
            test_array[i - 1] = reference_char;
        }
    }
    ++i;
}

String new_string =  new String(test_array);
System.out.println(new_string);

私はあなたの質問を理解したと思います.

ではごきげんよう!

于 2013-07-30T14:04:50.347 に答える