我读到,在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
而不是 StringBuffer
关于java - 为什么使用 StringBuffer 后无法使用 toLowerCase() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10096170/