Java在单元格数减半后开始读取null
我在一个CLI电子表格程序上做一个项目。我使用此代码从文件中输入:Java在单元格数减半后开始读取null,java,file-io,Java,File Io,我在一个CLI电子表格程序上做一个项目。我使用此代码从文件中输入: DataInputStream in=new DataInputStream(System.in); System.out.print("\nEnter filename (with path) - "); String fn=in.readLine(); FileReader fr=new FileReader(fn); BufferedReader br=new BufferedRea
DataInputStream in=new DataInputStream(System.in);
System.out.print("\nEnter filename (with path) - ");
String fn=in.readLine();
FileReader fr=new FileReader(fn);
BufferedReader br=new BufferedReader(fr);
String sen="";
while(true)
{
String sn=br.readLine();
if(sn==null)
break;
sen=sen+sn;
}
StringTokenizer st=new StringTokenizer(sen,"|");
String s[][][]=new String[(st.countTokens()/9)][9][3];
int r_0=(st.countTokens()/9);
int r,c;
r=c=0;
for(int i=0;i<st.countTokens();i++)
{
StringTokenizer st1=new StringTokenizer(st.nextToken(),"ɰ");
s[r][c][0]=st1.nextToken();
s[r][c][1]=st1.nextToken();
s[r][c][2]=st1.nextToken();
System.out.println(s[r][c][0]+"\t"+s[r][c][1]+"\t"+s[r][c][2]); // to be deleted
c++;
if(c==9)
{
r++;
c=0;
}
}
您应该将for循环与
while (st.hasMoreTokens())
而不是用于-循环的。无论如何,您没有使用i
此外,countTokens()
函数在检索令牌时会更改其值(请参见)3D数组是一个等待发生的恐怖故事。@SotiriosDelimanolis,但它在[5,5,0]之前确实输入正确。请仔细检查数据,并确保它符合您期望的格式。@ErnestFriedman Hill当然是这样。我用同一个程序创建了这个文件(在另一个文件的帮助下)。让我烦恼的是,它在中途停止了正确的行为。你能发布一个你的输入样本,该读但不读吗?
while (st.hasMoreTokens())