我在替換字符串中的字符時遇到了一些麻煩。代碼對於刪除連字符的時間段非常合適,但對於字母'e',它會刪除「test」中的'e',並且它還會在字符串的末尾轉換三個'e'。有誰知道爲什麼會發生這種情況?Java - 字符串中的字符替換
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);
也許你應該在for循環的末尾寫出來str'的'內容。然後你可以看到什麼時候發生。 –
這聽起來像是你應該期待的:它用'*'代替所有'e'。 –
無關如果我是最後一個字符,並且您嘗試評估str.charAt(i + 1) – JustinKSU