ランダムに生成された20文字の単語から母音を削除しようとしています。この割り当てには部分文字列を使用する必要がありますが、概念的に問題があります。このコードでは、wordの値は決して変更されず、元の値のままです。文字列の後半にi + 2を実行すると、2つの文字が飛び越し、2つの母音が直後にあるときには上になります。部分文字列を使用する必要がある場合は、毎回これを改善する方法を教えてください。文字列から文字を削除しようとしています
public class WordsWithoutVowels {
String finalWord;
public WordsWithoutVowels(String word) {
for(int i = 0; i < 20; i++) {
if(word.charAt(i) == 'a') {word = word.substring(0, i) + word.substring(i++);}
if(word.charAt(i) == 'e') {word = word.substring(0, i) + word.substring(i++);}
if(word.charAt(i) == 'i') {word = word.substring(0, i) + word.substring(i++);}
if(word.charAt(i) == 'o') {word = word.substring(0, i) + word.substring(i++);}
if(word.charAt(i) == 'u') {word = word.substring(0, i) + word.substring(i++);}
if(word.charAt(i) == 'y') {word = word.substring(0, i) + word.substring(i++);}
System.out.println(word);
}
finalWord = word;
}
public String getWord()
{
return finalWord;
}
}
あなたは単語からの手紙を削除すると、それもわずか1つの文字短くなったことを覚えておいてください。ヒントとして、後ろにループすることでもっと楽になります:) –
"matthew"の場合、結果として "mtthw"が必要です。 –
@Fildorこれはコンストラクタです。それはコンパイルします – yunandtidus