我在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();
}
答案 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]);
}