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

时间:2018-12-23 13:58:02

标签: java

我有一个文本文件,其中的数据使用制表符分隔。我的目标是将每个数据加载到不同的字符串中。我的文本文件如下所示:abc abcde abcdef,我有3个字符串:x,y,z。我的目标是使用扫描仪将abc装入x,将abcde装入y,将abcdef装入z。但是,我的代码将所有3个加载到单个String 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();
        }
    }
}

2 个答案:

答案 0 :(得分:1)

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

  1. sc.useDelimiter("\t");用作反斜杠,而不要使用/t。反斜杠表示特殊字符(在本例中为制表符)。
  2. 第二种方法,一起删除sc.useDelimiter("\t");行。您可以这样做,因为默认情况下sc.next()已经用空格分隔内容。

答案 1 :(得分:0)

将while循环内部的逻辑更改为此,

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

nextLine()将读取带空格的行,因此您不必使用sc.useDelimiter("/t");