我有一个包含单词及其相应含义的文本文件,每个单词含义对由两个制表符空格分隔
Cat Animal with four legs
Bus Mean of transport
NUST University in asia
Corolla Car manufacturing company
Chemistry Science subject
Cricket Game played with bat and ball
Camouflage Hide or disguise the presence of any object
我想读取每一行并用分隔符\\t\\t
拆分它们,这样我就可以将单词与它们的含义区分开来。下面是我写的这个函数
public static void readFile() {
try{
String line;
String[] lineparts;
Scanner pw = new Scanner(new BufferedReader(new FileReader("dictfile.txt")));
while(pw.hasNext()) {
line = pw.nextLine();
lineparts = line.split("\\t\\t");
System.out.println(lineparts[0]);
}
}catch(IOException ex){
System.out.println(ex);
}
}
但输出并不像我预期的那样。从lineparts
方法接收返回字符串的名为split()
的数组应该在其零索引处包含一个单词,并且该单词在其第一个索引处含义但实际输出不同。
实际输出
Cat Animal with four legs
Bus Mean of transport
NUST University in asia
Corolla Car manufacturing company
Chemistry Science subject
Cricket Game played with bat and ball
Camouflage Hide or disguise the presence of any object
预期输出
Cat
Bus
NUST
Corolla
Chemistry
Cricket
Camouflage
我在这里做错了什么以及如何实现预期的产出?
答案 0 :(得分:2)
您的某些文字以双标签分隔,但有些标签也用单个标签分隔。 split()方法中的正则表达式应如下所示:
ptr.right
答案 1 :(得分:1)
您不必使用转义序列\\t\\t
,而只需要标签\t\t
。如果您使用转义序列,则表示您要将带有字符\ t的行拆分为分隔符。