我读到在Java中,String是不可变的,因此我们不能真正直观地使用toLowerCase,即原始字符串未修改:

String s = "ABC";
s.toLowerCase();

> "ABC"


但是,即使使用StringBuffer(支持可变字符串)也不起作用

StringBuffer so = new StringBuffer("PoP");

so.toLowerCase()

> Static Error: No method in StringBuffer has name 'toLowerCase'


我感谢任何提示或建议。

最佳答案

好吧,事实并非如此。您必须使用.toString().toLowerCase()

String lowercase = sb.toString().toLowerCase();


如果要严格限制不创建不必要的实例,可以迭代所有字符并将其小写:

for (int i = 0; i < sb.length(); i++) {
   char c = sb.charAt(i);
   sb.setCharAt(i, Character.toLowerCase(c));
}


最后-相对于StringBuilder

关于java - 使用StringBuffer后为什么不能使用toLowerCase()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10096170/

10-11 19:34