我通过下面的代码实现了它,但我不知道是否有更有效的方法来从StringBuilder中删除所有空格
private static StringBuilder removeBlankSpace(StringBuilder sb){
for(int i=0;i<sb.length();++i){
if(Character.isWhitespace(sb.charAt(i))){
sb.deleteCharAt(i);
i--;
}
}
return sb;
}
6条答案
按热度按时间mcvgt66p1#
您不应该多次调用
delete
-只需将每个字符向下移动到其最终位置,然后删除末尾的范围。hts6caw32#
编辑:把这个答案留给后代,but Keith Randall's O(n) solution要好得多。
您可能会发现从远端工作效率更高-因为这样在删除 early 字符时,您将不会从后面复制空白。
此外,如果数据中有多个空格字符,您可能希望发现这一点,并调用
delete
而不是deleteCharAt
。egdjgwm83#
下面的代码怎么样(假设您已经初始化了
StringBuilder sb
):3j86kqsm4#
删除字符串的前导空格和尾随空格的代码
yx2lnoni5#
java字符串trim()方法删除前导和尾随空格。空格字符的unicode值为'\u0020'。java字符串中的trim()方法在字符串前后检查此unicode值,如果存在,则删除空格并返回省略的字符串。例如:
和结果:
mrphzbgm6#
我觉得这样比较简洁: