无法删除字符串中的所有大写字符

Mad*_*ddy 1 java

我无法删除字符串中的所有大写字符.任何见解都表示赞赏.

如果我输入MANDY为str,我输出为AD.我不确定为什么会有这种行为.

StringBuilder outString = new StringBuilder(str);
for(int i = 0; i<outString.length(); i++){
    if(Character.isUpperCase(outString.charAt(i))){
        outString.deleteCharAt(i);
    }
}
return outString.toString();
Run Code Online (Sandbox Code Playgroud)

谢谢

k5_*_*k5_ 8

通过删除您更改索引的字符,不会删除每个大写字符.

一个简单的"技巧"是以相反的方式迭代缓冲区(从结束开始).这样,您只会影响已处理字符的索引

for(int i = outString.length()-1; i>=0; i--){
    if(Character.isUpperCase(outString.charAt(i))){
       outString.deleteCharAt(i);
   }
}
Run Code Online (Sandbox Code Playgroud)