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

如果将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();


谢谢

最佳答案

通过删除字符,可以更改索引,因此不会删除每个大写字符。

一个简单的“技巧”就是以另一种方式迭代缓冲区(从结尾开始)。这样,您只会影响已经处理的字符的索引

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

关于java - 无法删除字符串中的所有大写字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38238372/

10-09 06:51
查看更多