文字列内の文字の置換に問題があります。このコードは、ハイフンとピリオドの削除には問題なく機能しますが、文字 'e' については、"test" の 'e' を削除し、文字列の末尾にある 3 つの 'e' も変換します。なぜこれが起こっているのか誰にも分かりますか?
String str = "This is a test string, 12345! -12e3.0 eee";
for(int i = 0; i < str.length(); i++) {
if((str.charAt(i) == '-') && (Character.isDigit(str.charAt(i+1)))) {
str = str.replace(str.charAt(i), '*');
}
if((str.charAt(i) == 'e') && (Character.isDigit(str.charAt(i+1)))) {
str = str.replace(str.charAt(i), '*');
}
if((str.charAt(i) == '.') && (Character.isDigit(str.charAt(i+1)))) {
str = str.replace(str.charAt(i), '*');
}
}
str = str.replaceAll("[1234567890]", "*");
System.out.println(str);