字符串连接不起作用

时间:2017-04-23 08:16:51

标签: java string javafx

这是我第一次发帖提问。希望,我会保持活跃,因为编码是我喜欢的。 刚刚开始尝试使用Java。

获得了这段代码:

String  textData=new String();

        while (scanFile.hasNext()) {
            String text = scanFile.next();
            System.out.println(text);
            new StringBuilder().append(textData).append(text).toString();
            System.out.println(textData);
        }

        System.out.println(textData);

我正在尝试阅读文本文件并将其打印在另一个地方。这只是我写的大型程序的片段。 在这里,没有任何东西被连接到textData。但是,文本有数据,证明我的文本文件正在被读取。 我在这里做错了什么?

3 个答案:

答案 0 :(得分:2)

将字符串附加到StringBuilder实例,然后对其执行任何操作。您在代码中所做的任何事情都无法改变由String创建的空String textData=new String();的内容,因为String是一个不可变的类。

更改

new StringBuilder().append(textData).append(text).toString();

textData = new StringBuilder().append(textData).append(text).toString();
顺便说一句,取消textData变量可能更有意义,而改为StringBuilder变量。这样,您就不必在循环的每次迭代中创建新的StringBuilder。您可以随时获取String当前内容的StringBuilder表示。

StringBuilder sb=new StringBuilder();

while (scanFile.hasNext()) {
    String text = scanFile.next();
    System.out.println(text);
    sb.append(text);
    System.out.println(sb);
}

System.out.println(sb);

答案 1 :(得分:1)

您应该从while循环中初始化StringBuilder,然后在循环中向其追加值。在您的代码中,StringBuilder每次都会重置。试试这个:

StringBuilder sb = new StringBuilder();

    while (scanFile.hasNext()) {
        String text = scanFile.next();
        System.out.println(text);
        sb.append(textData).append(text).toString();
    }

    System.out.println(sb.toString());

答案 2 :(得分:0)

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
    StringBuilder textData = new StringBuilder();

    File file = new File("Sample.txt");
    Scanner fInput;
    try {
        fInput = new Scanner(file);
        while (fInput.hasNext()) {
            textData.append(fInput.nextLine());
        }
        System.out.println(textData);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}}

尝试此代码,我创建了一个名为Sample.txt的示例文件,其中包含以下内容: 嗨,我现在在大学, 让我们看看我们是否可以连接内容: - )

这似乎有效。

由于