10
aaa aaa aaa
bbb bbb bbb
ccc ccc ccc
ddd ddd ddd
我有一个文本文件,我试图用制表符分隔符读取。每当我读取文件时,我在10.之后得到一个arrayindexoutofbound错误。我在网上搜索,发现我必须在\ t后面加一个-1但我仍然会得到同样的错误。
try{
Scanner scan = new Scanner(new File("1.txt"));
String line="";
int readline = Integer.parseInt(scan.nextLine());//
while (scan.hasNextLine())
{
line = scan.nextLine();
if(line.equals("ccc"))
{
break;
}
String[] split=line.split("\t");
array.add(split);
}
答案 0 :(得分:12)
如果您使用Scanner
,则无需split
,您可以在此处使用next()
,如下所示
Scanner sc=new Scanner(new FileReader("D:\\test.txt"));
while (sc.hasNextLine()){
System.out.println(sc.next());
}
答案 1 :(得分:0)
这样你的代码就会失去这个丑陋的突破(休息时间大部分都是可以避免的......)
try{
Scanner scan = new Scanner(new File("1.txt"));
String line="";
int readline = Integer.parseInt(scan.nextLine());//
while (scan.hasNextLine())
{
line = scan.nextLine();
if(!line.equals("aaa")){
String[] split=line.split("\t");
array.add(split);
}
}
关于你的问题,我认为你是用第一行的整数初始化你的数组,但它是10,你有12个元素。因此指数超出范围,但你的问题仍然不清楚......