来自 FileIO 的扫描仪没有给出预期的结果
Scanner from FileIO does not give desired result
我在 txt 文件中有文本,内容为
(瑜伽 class;12;2;11-12;描述;11;2019;11;2)
当我尝试打印字段 [4] 或字段 [0] 等特定字段时
我分别得到 classdescription 和 the2。
我如何在打印字段时获得 "the description"?
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();
}
默认情况下,Scanner 使用“”作为分隔符。您期望 sc.next()
到 return 一个完整的行。所以你需要将 EOL 设置为分隔符:
sc.useDelimiter(System.getProperty("line.separator"));
将输出 sc.next() 放入字符串变量并打印它以验证它是否 return 符合您的预期会有所帮助:
sc.useDelimiter(System.getProperty("line.separator"));
while(sc.hasNext()) {
String line=sc.next();
String [] fields = line.split(";");
System.out.println(fields[4]);
}
我在 txt 文件中有文本,内容为 (瑜伽 class;12;2;11-12;描述;11;2019;11;2) 当我尝试打印字段 [4] 或字段 [0] 等特定字段时 我分别得到 classdescription 和 the2。 我如何在打印字段时获得 "the description"?
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();
}
默认情况下,Scanner 使用“”作为分隔符。您期望 sc.next()
到 return 一个完整的行。所以你需要将 EOL 设置为分隔符:
sc.useDelimiter(System.getProperty("line.separator"));
将输出 sc.next() 放入字符串变量并打印它以验证它是否 return 符合您的预期会有所帮助:
sc.useDelimiter(System.getProperty("line.separator"));
while(sc.hasNext()) {
String line=sc.next();
String [] fields = line.split(";");
System.out.println(fields[4]);
}