2017-07-21 8 views
2

Simularトピックで私の問題を解決できませんでした。 'a'の文字をの'x'に変更する必要があります。文字列のcharを変更する方法 - 文字を置き換えるjava

例: "abc" = "xbc"。私はsubstring(), charAt() - replace()メソッドしか使用できません。

これまでの私のコード: - 明確な

public static String ersetze(String text){ 
    for(int i = 0; i<text.length(); i++){ 

     if(text.substring(i, i+1).charAt(i) == 'a'){ 
      text.substring(i, i+1) = 'x'; 
     } 
    } 
    //return statement 
} 

今エラーは左の割り当ては変数でなければならないことtext.substring(i, i+1) = 'x';です。どうやって変数に変数を割り当てるのですか?私はchar x;をどのように入れて文字を置き換えるために文字列にxを宣言すればいいですか?

+2

文字列をchar配列に変換して処理します。その後、新しい文字列に変換し直します。 – Oneiros

答えて

2

あなたはREALLLLLYこれを必要とし、あなたが、あなたはあなたが要求した文字を見つけるたびにこれを行うことができます言及した方法に限定されている場合: text = text.substring(0, i) + x + text.substring(i + 1);

+0

これはうまくいきました、ありがとうございます! – junxi

+0

@junxi、心配はいりません!このメソッドは効率的ではなく、不要な文字列をたくさん作成し、実際にはこれを絶対にしないでください –

5

StringはJavaではimmutableです。したがって、文字列の文字を置き換えることはできません。新しいStringを作成する必要があります。

あなたは文字の配列に文字列を変換し、唯一必要なものを変更し、その後、この配列から新しい文字列を作成することができます。

public static String ersetze(String text){ 
    char[] letters = text.toCharArray(); 

    for (int i = 0; i < letters.length; i++){ 
     if (letters[i] == 'a') { 
      letters[i] = 'x'; 
     } 
    } 

    return new String(letters); 
} 
+0

ユーザーはAPIの使用が制限されていると言います。そうでなければ、彼は.replaceAll() –

+0

@ P.Anを実行できました。 'charAt'と' substring'だけでは不可能です。少なくとも '+'または 'toCharArray'が必要です。 StringBuilderはこれと同等です。 – Thilo

+1

@Thilo、私の答えは '+' –

0

は、Java APIに含まれる(文字配列に文字列を変換します)、配列を反復処理し、すべての "a"をchar配列の "x"に置き換え、文字列に戻します。

5

文字列は、文字で置き換えることはできません。最初に文字配列&を作成して置き換えてください。

public static String ersetze(String text){ 
    char[] result = text.toCharArray(); 
    for(int i = 0; i < result.length; i++){ 
     if(result [i] == 'a'){ 
      result[i] = 'x'; 
     } 
    } 
    return String.valueOf(result); 
} 
関連する問題