我在替换字符串中的字符时遇到了一些麻烦。该代码可以很好地删除连字符和句点,但是对于字母“e”,它会删除“test”中的“e”,并且它还会转换字符串末尾的三个“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);