gpt4 book ai didi

java - 为什么我的 Java 字符串连接不起作用?

转载 作者:行者123 更新时间:2023-12-02 03:45:08 26 4
gpt4 key购买 nike

当此代码运行时,它会获取网页的内容。

我想连接整个字符串而不是将其打印到控制台,但是当我取消注释下面代码中的两行时, System.out.println(inputLine); 不打印任何内容(但它使用下面注释的行)和值 fileText = null,

这个错误从何而来?

import java.net.*;
import java.io.*;

public class URLReader {

public static void main(String[] args) throws Exception {

URL oracle = new URL("http://www.oracle.com");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));

String fileText = "";
String inputLine;
while ((inputLine = in.readLine()) != null)
//fileText.concat(inputLine);
System.out.println(inputLine);
in.close();
//System.out.println(fileText);
}
}

最佳答案

String不可变并且 concat()将返回一个新的String(检查链接的文档),您不会收集该字符串。

您应该使用 StringBuilder高效地构建字符串,然后在完成后调用 toString() 以获得结果字符串。

例如

StringBuilder sb = new StringBuilder();
while (....) {
sb.append("more string data");
}
String str = sb.toString();

可以附加字符串例如

   str = str + "more string data";

但由于String的实现,它的效率不是很高。构建StringBuilder是为了有效地执行连接。如果您了解要构建的 String 的大小,则可以通过其初始容量调整 StringBuilder

您可能会看到一些来源引用了StringBuffer。这非常相似,只是它更旧并且默认同步其方法。在非线程环境中这是浪费的,一般建议是首选 StringBuilder

关于java - 为什么我的 Java 字符串连接不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11905531/

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