我有这样的方法,字符串方法Append():StringBuilder的VS StringBuffer的
public static void main(String[] args) {
String s = "Java";
StringBuilder buffer = new StringBuilder(s);
change(buffer);
System.out.println("What's strBuf.charAt(5)? " + strBuf.charAt(3));
System.out.println(buffer);
}
private static void change(StringBuilder buffer) {
buffer.append(" and HTML");
}
当我运行使用StringBuilder的,我得到错误信息的代码, “构造的StringBuilder(字符串)是不确定 方法的charAt (int)对于StringBuilder类型是未定义的“
在调试的过程中,我尝试了StringBuffer,它的工作完美。 StringBuffer对象的内容编译为“Java和Eclipse的。”
public static void main(String[] args) {
String s = "Java";
StringBuffer strbuf = new StringBuffer(s);
change(strbuf);
System.out.println("The Stringbuffer.charAt(5) is ? " + strbuf.charAt(3));
System.out.println(strbuf);
}
private static void change(StringBuffer strbuf) {
strbuf.append(" and Eclipse");
}
}
有人可以告诉我为什么后者“StringBuffer的”工作和StringBuilder的didnt。 以及是否合法将字符串传递到StringBuilder构造函数中。 “StringBuilder的(一个或多个);”
@fge你是对的,我检查Java文档,它表明传递字符串的StringBuilder的构造函数是合法的,但它仍然在我使用的eclipse版本中不起作用。任何建议。 – zee