FileIO的扫描仪无法提供所需的结果

时间:2019-01-16 09:07:01

标签: java file-io split

我在txt文件中有文字,内容为  (瑜伽课; 12; 2; 11-12;说明; 11; 2019; 11; 2) 当我尝试打印特定的字段,例如field [4]或field [0] 我分别得到classdescription和the2。 我在打印字段时如何获得“描述”?

        while(sc.hasNext()) {
            String [] fields = sc.next().split(";");
            for (int i =4; i<fields.length; i++) {
                System.out.println(fields[0]);
            }
        }


    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

默认情况下,扫描程序使用“”作为分隔符。您期望sc.next()返回完整的行。因此,您需要将EOL设置为定界符:

sc.useDelimiter(System.getProperty("line.separator"));

它可以帮助将输出sc.next()放在String变量中并打印出来,以验证其是否返回您期望的结果:

sc.useDelimiter(System.getProperty("line.separator"));
while(sc.hasNext()) {
    String line=sc.next();
    String [] fields = line.split(";");
    System.out.println(fields[4]);
}
相关问题