【发布时间】:2019-06-11 20:41:11
【问题描述】:
对于以下代码,我将如何使用连接而不是 StringBuilder 在以下方法中创建字符串? 我的老师说要使用串联而不是 StringBuilder。
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
【问题讨论】:
-
欢迎来到 SO!连接比 StringBuilder 慢。你这样做的理由是什么?如果必须,可以使用
String s = ""; s += (char)cp;... -
使用
String代替StringBuilder和+=代替.append()。顺便说一句,你为什么想要那个?除了改变朋友的作业之外,实际上没有任何好处。 -
string += (char)cp; -
如果您要处理的字符串过多,通常不首选连接。它会创建太多的字符串,因为字符串是不可变的。如果您处理的字符串很少,您可以使用 sb.concat( ) 进行连接(您的 sb 对象应该是 String 类型)
-
@NikithaVangala 这不一定是真的。字符串连接(循环外)编译为使用
StringBuilder。
标签: java string concatenation stringbuilder