假设我有一个这种格式的文件,
8 15
5
8
16
89
我正在使用Scanner类来读取文件。我想将这些值存储在二维数组中,例如
Y [0] [0] = 8,Y [0] [1] = 15,Y [1] [0] = 5时,y [2] [0] = 8。
我无法存储这样的值。我得到了一个输出
Y [0] [0] = 8,Y [0] [1] = 15,Y [0] [3] = 5时,y [0] [4] = 8。
我想知道如何在文件中找到(EOL)行尾,以便它自动存储在二维数组中。
public class gjd {
public static void main(String[] args) {
java.io.File test2 = new java.io.File("c.txt");
try
{
Scanner input = new Scanner(test2);
while (input.hasNextLine()){
int y[][]=new int[10][10];
for(int i=0;i<test2.length();i++)
{
for(int o=0;o<test2.length();o++)
{
y[i][o]=input.nextInt();
System.out.println(y[i][o]);
}
}
}
} catch (Exception e){
System.out.println("could not find file");
}
}
}
答案 0 :(得分:1)
试试这个代码......
java.io.File test2 = new java.io.File("C:/c.txt");
Scanner input = new Scanner(test2);
String arr[][]=new String[5][5];
int i=0,j=0;
while(input.hasNext())
{
String val=input.nextLine();
j=0;
if(val.contains(" "))
{
String str[]=val.split(" ");
int cn=str.length;
while(cn>0)
{
arr[i][j]=str[j];
cn--;
j++;
}
}
else
arr[i][j]=val;
i++;
}
for(int i1=0;i1<5;i1++)
{
for(int j1=0;j1<5;j1++)
if(arr[i1][j1] != null)
System.out.print(arr[i1][j1]);
System.out.println();
}
答案 1 :(得分:0)
每次找到一行时都不应该实例化数组:
int y[][] = new int[10][10];
不应该在while循环中。
您要对文件的长度做些什么:test2.length()
?
答案 2 :(得分:0)
您可以使用第二台扫描仪处理从第一台扫描仪解析的线路
然后你可以检查一下,行中是否还有另一个int,如果需要,设置一个默认值。