Java 在以下情况下使用StringBuilder是否无用?

Java 在以下情况下使用StringBuilder是否无用?,java,stringbuilder,Java,Stringbuilder,我有一个例子,我需要构建一个URL,在URL的末尾有一个键。我需要通过更改不同的键来更改URL 像下面这样使用StringBuilder没有用,因为我正在将它转换回string //the below line loops for a number of times with strKey changing each time url = new URL(strUrl.append(strKey).toString()); 是的。仅在此处连接字符串可能更快(因为您只复制了一次数据)且更清晰。在

我有一个例子,我需要构建一个URL,在URL的末尾有一个键。我需要通过更改不同的键来更改URL

像下面这样使用
StringBuilder
没有用,因为我正在将它转换回
string

//the below line loops for a number of times with strKey changing each time
url = new URL(strUrl.append(strKey).toString());

是的。仅在此处连接字符串可能更快(因为您只复制了一次数据)且更清晰。

在您的示例中,对于所有现代JDK(Java 1.5+)而言,它使用
StringBuilder
进行常规字符串添加

 url = new URL(strUrl.append(strKey).toString()); // There is nothing wrong with this.
但它(在功能上)与

 url = new URL(strUrl + strKey);

在Java 1.5之前,使用了
StringBuffer

如果您以
strUrl+strKey
的形式编写,Java编译器将为您创建StringBuilder。我认为您没有提供足够的信息来帮助您。考虑到您正在循环,似乎您正在重用
strUrl
StringBuilder
,并反复附加到它,所以不,这似乎没有什么意义。如果使用字符串连接,每次都会创建并丢弃
StringBuilders
。OP说他正在循环,因为他/她没有替换
strUrl
,这意味着重用。因此在功能上并不相同,而且使用
StringBuilder
比串联更有效。但这个问题缺乏足够的信息来确定。@T.J.Crowder也许。但是OP也没有提到重置它。。。这就是我的假设,这就是我的意思。OP没有提到重置它,但说他/她正在循环。但由于这是又一次盛开,我想我们暂时不会知道。叹息