gpt4 book ai didi

java - for 循环中的字符串文字与 for 循环中的字符串生成器

转载 作者:行者123 更新时间:2023-12-01 16:51:27 25 4
gpt4 key购买 nike

我有一个问题。

当我们这样做

String str = "abc";

“abc”将成为字符串文字并驻留在字符串池中。

如果我们在 for 循环中有字符串,如下所示:

private static void doByString() {
String str;
for(long l = 0; l < Long.MAX_VALUE; l++){
str = str + "" + l;
}
}

它将生成大量字符串文字,我们必须在 for 循环中使用它。

在这种情况下,我们可以采取一些措施来尽量减少字符串文字的生成吗?

在这种情况下我们可以使用字符串生成器吗:

private static void boByStringBuilder() {
StringBuilder builder = new StringBuilder();
for(long l = 0; l < Long.MAX_VALUE; l++){
builder.append(l + "");
}
}

最佳答案

It will be making a lot of string literals, and we have to use it in for loop.

这不会创建任何字符串文字。它将创建字符串。

In this type of situation, can we do something to minimize the making of string literals?

不需要,因为它不会创建任何东西。

Can we use string builder in this case like

两个代码都使用 StringBuilder。第一个示例隐式使用 StringBuilder。

注意:

builder.append(l + "");

相同
builder.append(new StringBuilder().append(l).append("").toString());

你可以写

private static void boByStringBuilder() {
StringBuilder builder = new StringBuilder();
for(long l = 0; l < BIG_NUMBER; l++) {
builder.append(l); // less Strings
}
}

关于java - for 循环中的字符串文字与 for 循环中的字符串生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39292291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com