Java 将文本中的数据加载到不同的字符串中

Java 将文本中的数据加载到不同的字符串中,java,Java,我有一个文本文件,数据用制表器分开。我的目标是将每个数据加载到不同的字符串中。我的文本文件看起来像这样:abc abcde abcdef,我有3个字符串:x,y,z。我的目标是使用扫描仪将abc加载到x,abcde加载到y,abcdef加载到z。但是,我的代码正在将所有3个字符串加载到单个字符串x中。我如何实现我的目标?谢谢 我的代码如下所示: public void Stringu(String file) { Scanner sc = null; String x;

我有一个文本文件,数据用制表器分开。我的目标是将每个数据加载到不同的字符串中。我的文本文件看起来像这样:abc abcde abcdef,我有3个字符串:x,y,z。我的目标是使用扫描仪将abc加载到x,abcde加载到y,abcdef加载到z。但是,我的代码正在将所有3个字符串加载到单个字符串x中。我如何实现我的目标?谢谢

我的代码如下所示:

public void Stringu(String file) {
    Scanner sc = null;
    String x;
    String y;
    String z;
    try {
        sc = new Scanner(new File(file));;
        sc.useDelimiter("/t");
        while (sc.hasNext()) {
                x = sc.next();
                y = sc.next();
                z = sc.next();

        }

    } catch (FileNotFoundException e) {
        System.err.println("file not found");
    } finally {
        if (sc != null) {
            sc.close();
        }
    }
}

这里的解决方案非常简单。你有两个选择

  • 使用
    sc.useDelimiter(“\t”)
    用反斜杠代替
    /t
    。反斜杠表示特殊字符(在本例中为制表符)
  • 选项二,删除行
    sc.useDelimiter(“\t”)全部放在一起。您可以这样做,因为默认情况下,
    sc.next()
    已经用空格分隔内容

  • 将while循环中的逻辑更改为

            while (sc.hasNext()) {
                String[] split = sc.nextLine().split(" ");
                x = split[0];
                y = split[1];
                z = split[2];
            }
    
    nextLine()