如何从字符串中删除字符?

jai*_*jai 2 java string

public static String removeChar(String s, char c) {
  StringBuffer r = new StringBuffer( s.length() );
  r.setLength( s.length() );
  int current = 0;
  for (int i = 0; i < s.length(); i ++) {
     char cur = s.charAt(i);
     if (cur != c) r.setCharAt( current++, cur );
  }
  return r.toString();
}
Run Code Online (Sandbox Code Playgroud)

我在这里找到了上面的代码.

两个问题:

  1. 为什么我们需要做setLength()?没有它我得到java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0

  2. 当我用参数 - "teeter"和"e"运行这个程序时,'ttr'和三个垃圾字符即将到来.如何删除缓冲区中未使用的空格?

Asg*_*eir 6

为什么不直接使用replaceAll?java.lang.String.replaceAll