我把重要的几条写出来
StringBuffer sb= new StringBuffer("");String inStr = "";
String str = null;FileReader inputStream = null;
BufferedReader inputBuffer = null;while((str = inputBuffer.readLine()) != null)
{
sb.append(str+"\n");
inStr += str;
String a[] = str.split(",");
}
现在想把a[]里的内容复制到b[][]这个二维数组,b的行和列都是已知,请问如何复制?
StringBuffer sb= new StringBuffer("");String inStr = "";
String str = null;FileReader inputStream = null;
BufferedReader inputBuffer = null;while((str = inputBuffer.readLine()) != null)
{
sb.append(str+"\n");
inStr += str;
String a[] = str.split(",");
}
现在想把a[]里的内容复制到b[][]这个二维数组,b的行和列都是已知,请问如何复制?
就是b[][]的行和列已经从文件中获取
所以就当他们是已知的就好,可以用row和width代替
b[m][n]=a[i]; //m为行,n为列
n++;
if(n>b[m].length){
n=0;
m++;
if(m>b.length) {
System.out.println("数组长度太大");
break;
}
}
}
是什么意思啊
就是我做了一个迷宫程序,地图文件是写在记事本里的,想这样:wall,wall,,wall,,exit.....地图文件的第一行可以获取到地图的大小,也就是二维数组的行和列。本来是想直接读取进二维数组,但发现用不了split(",")这个方法,所以才出现上面那个先读进一维数组,然后我想把那个一维数组再复制到二维数组作为地图,这样描述不知道是否能清楚些?如果你知道怎么能将该文件直接读进二维数组也好,实在想不到什么方法读进去
public static void main(String[] args)throws Exception{
int[] a={1,2,3,4,5,6,7,8};
String[] arrlen=new String[2];
int rows;
int cols;
FileReader fr=new FileReader("G:\\Demo\\Testcode\\arr.txt");
int b;
int i=0;
while((b=fr.read())!=-1){
arrlen[i++]=(char)fr.read()+"";
}
fr.close();
int k=0;
rows=Integer.valueOf(arrlen[0]);
cols=Integer.valueOf(arrlen[1]);
int[][] newarr=new int[rows][cols];
for(i=0;i<rows;i++){
for(int j=0;j<cols;j++){
newarr[i][j]=a[k++];
System.out.print(newarr[i][j]+" ");
}
System.out.println();
}
}
}
int[][] b=new int[3][3];
b[0]=Arrays.copyOf(a,3);每次读入一行,然后拷贝到二维数组中
{
sb.append(str+"\n");
inStr += str;
String a[] = str.split(",");
}//假定数组容量是这样的,随便修改,但是一定要满足b[][]跟a[]的容量是一样的
String[][] b = new String[5][4];
//外面两层,控制二维数组。
for (int x = 0; x < b.length ; x++){
for (int y = 0 ;y < b[x].length ; y++){
//第三层控制a[]数组,遍历a,并将a添加到b中 ,
for (int z = 0 ;z < a.length ; z++){
b[x][y] = a[z];
}
}
}
看看这样行不行,我这里没编译器,不知道有错没有。