我有一个文本文件,其中的数据使用制表符分隔。我的目标是将每个数据加载到不同的字符串中。我的文本文件如下所示: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();
}
}
}
答案 0 :(得分:1)
这里的解决方案非常简单。您有两种选择。
sc.useDelimiter("\t");
用作反斜杠,而不要使用/t
。反斜杠表示特殊字符(在本例中为制表符)。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");