gpt4 book ai didi

java - String Builder 或 ""+someNumb 对于小案例是否更有效/更正确?

转载 作者:行者123 更新时间:2023-11-29 05:29:38 25 4
gpt4 key购买 nike

我一直习惯于这样做:

int num = 12;
String text = ""+12;

很长一段时间,但我发现对于大量添加来说,这是一种非常低效的机制。

对于这些情况,我通常会这样做:

// this is psuedo code here..
FileInputStream fis = new FileInputStream(fis);
StringBuilder builder = new StringBuilder();
while(input.hasNext()) {
builder.append(input.nextString());
}

我的问题是:在为 Android 编码时(与一般 Java 情况相比)在小情况下性能权衡是否值得使用 String Builder,或者在这些小情况下是否有任何其他原因更喜欢 String Builder?在上面介绍的简单案例中,似乎有很多额外的输入。我还怀疑(虽然我还没有确认)简单情况下的内存分配可能不值得。

编辑:假设附加的值在编译时未知,I.E.它们不是常量。

上面的“”+12 的例子也是一个选择不当的例子。假设它是

String userGeneratedText  = textInput.getText().toString();
int someVal = intInput.getInt();

String finalVal = userGeneratedText+someVal;

最佳答案

如果您的代码如此处所示很短:

String text = "foo" + 12;

编译器会自动替换拼接以使用StringBuilder:

String text = new StringBuilder().append("foo").append(12).toString();

所以不要担心这段代码的低效,因为它会比您预期的更好。

如果您需要附加非常大的 String 或者您不知道要连接多少对象(字符串、整数、 boolean 值等),请使用 StringBuilder 就像您在第二个代码示例中所做的那样。

这里有一个关于字符串连接如何工作的更深入的解释:http://blog.eyallupu.com/2010/09/under-hood-of-java-strings.html

关于java - String Builder 或 ""+someNumb 对于小案例是否更有效/更正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556322/

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