文字列内の文字を別の文字に置き換えるコードを書いています。しかし、現在の私の割り当てでは、特定の形式のコードが必要です。私は以下のコードを実行しようとしました:私は、一般的にプログラミングにまだ比較的新しいですと charをメソッドに配置する文字列に変換しようとしました。どこが間違っていますか?
public String replaceLetter(String word, char letterToReplace, char replacingLetter)
{
letterToReplace = Character.toString(letterToReplace);
replacingLetter = Character.toString(replacingLetter);
word = word.replaceAll(letterToReplace, replacingLetter);
return word;
}
は、コード内の任意の非効率性を言い訳してください。私は最近、文字や文字列をもっと強く持っていたので、それらに関連する規則や特性の点では分かりません。私のコードのエラーは非論理的ですか?私が現在使用しているIDEは、グレーディングのための課題を収集する唯一の目的を持っているオンラインのものです。上のコードをコンパイルすると、return文が見つからないなどのエラーが出るので、信頼できるとは思いません。 IDE自体は非常に制限されており、switch文などのコンパイルができないため、できるだけシンプルにすることができればと思っています。しかし、私はIDEが最も正確なコーディングを認識することが分かっています。私はforステートメントでコーディングを試みました:
public String replaceLetter(String word, char letterToReplace, char replacingLetter)
{
for (int i = 0; i < word.length(); i++)
{
char ca = word.charAt(i);
if (ca == letterToReplace)
{
word = (word.substring(0,i)+ replacingLetter + word.substring(i+1));
}
}
return word;
}
しかし、私もエラーに遭遇しました。私の構文を訂正する助けがあれば幸いです。
_ "でも、私もエラーに遭遇しました。" – JLRishe
コンパイラは、私のカッコの使用が間違っているか、for文が不正であると指摘しました。それをすることは知られていますが、私は自分のエラーが他の場所にあると信じています。 –
答えでは、 'toString'を使用すると、結果は' String'であり、 'String'変数に代入する必要があることを示しています。 Javaは強く型付けされているため、異なる型のものを割り当てることで変数の型を変更することはできません。しかし、Javaには 'char'引数を許可する' replace'があるので、実際には文字列に変換する必要はありません:http://docs.oracle.com/javase/8/docs/api/java/lang/String .html#replace-char-char-。 – ajb