私はクラスのためのプロジェクトを進めており、文字列を操作するのにcharAt()、length()、substring()、およびequals() 。ループは文字列の文字列をすべて文字列から削除しません
文字のすべてのインスタンスを文字列から削除するビットに固執しています。文字列が連続する同一の文字を持つ場合、プログラムは毎回1つの文字を残します。例は「午後」です。 'n'を削除したい場合、プログラムはnを正しく削除し、出力は "afteroo"です。しかし、「o」を削除したい場合、出力は「afternon」です。
これは私がプログラムのこの部分のために持っているものです。
System.out.println("Enter the character to remove.");
removeChar = keyboard.nextLine();
char remove = removeChar.charAt(0),
original;
for(i=0; i < input.length(); i++){
original = sentence.charAt(i);
if(original == remove)
sentence = sentence.substring(0,i) + sentence.substring(i+1);
}
System.out.println(sentence);
あなたは基本的に "午後"があり、 "o"を削除したい場合は "afternn"にする必要がありますか? –
あなたは 'input'をループするのに' i'を使いますが、 'sentence'もそれを操作しています。 'sentence'から文字を削除すると、' i'は 'sentence'をスプライスする有効な方法ではなくなりました。 – Jeremy