Java 如何使用扫描仪读取文件并将值存储在二维数组中
假设我有一个这种格式的文件 8 15 五, 八, 十六, 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)行尾,以便它自动存储在二维数组中Java 如何使用扫描仪读取文件并将值存储在二维数组中,java,Java,假设我有一个这种格式的文件 8 15 五, 八, 十六, 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(Stri
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");
}
}
}
公共级gjd{
公共静态void main(字符串[]args){
java.io.File test2=新的java.io.File(“c.txt”);
尝试
{
扫描仪输入=新扫描仪(test2);
while(input.hasNextLine()){
整数y[][]=新整数[10][10];
对于(int i=0;i,您不应该在每次找到一行时都实例化一个数组:
int y[][]=new int[10][10];
不应在while循环中
您想对文件的长度做什么:test2.length()
?试试这段代码
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();
}
java.io.File test2=新的java.io.File(“C:/C.txt”);
扫描仪输入=新扫描仪(test2);
字符串arr[][]=新字符串[5][5];
int i=0,j=0;
while(input.hasNext())
{
字符串val=input.nextLine();
j=0;
if(val.contains(“”)
{
字符串str[]=val.split(“”);
int cn=str.length;
而(cn>0)
{
arr[i][j]=str[j];
cn--;
j++;
}
}
其他的
arr[i][j]=val;
i++;
}
对于(int i1=0;i1您可以使用第二个扫描器处理从第一个扫描器解析的行
然后,您可以检查行中是否有其他int,如果需要,可以设置默认值。真棒的家伙们,我能够获得我想要的输出。我开始非常喜欢java了。谢谢。