如何将一维数组的内容复制到二维数组

pepsi_yr 2010-11-20 12:11:29
我把重要的几条写出来
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的行和列都是已知,请问如何复制?
...全文
768 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
HeartWasNot 2010-11-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wangyinbin 的回复:]

Java code
import java.io.*;

public class Testarr {
public static void main(String[] args)throws Exception{
int[] a={1,2,3,4,5,6,7,8};
String[] arrlen=new String[2];
int ……
[/Quote]就一个循坏赋值··
一夜相思愁 2010-11-21
  • 打赏
  • 举报
回复


while((str = inputBuffer.readLine()) != null)
{
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];
}
}
}


看看这样行不行,我这里没编译器,不知道有错没有。
贪睡的兔子 2010-11-21
  • 打赏
  • 举报
回复
int[] a={1,2,3};
int[][] b=new int[3][3];
b[0]=Arrays.copyOf(a,3);

每次读入一行,然后拷贝到二维数组中
proorck6 2010-11-21
  • 打赏
  • 举报
回复
编个循环不就全搞定了
懒得搭理你 2010-11-21
  • 打赏
  • 举报
回复
import java.io.*;

public class Testarr {
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();
}
}
}
wyang1991 2010-11-20
  • 打赏
  • 举报
回复
for(int i=0,int m=0,int n=0;i<a.length;i++){
b[m][n]=a[i]; //m为行,n为列
n++;
if(n>b[m].length){
n=0;
m++;
if(m>b.length) {
System.out.println("数组长度太大");
break;
}
}
}
pepsi_yr 2010-11-20
  • 打赏
  • 举报
回复
String b[][];
就是b[][]的行和列已经从文件中获取
所以就当他们是已知的就好,可以用row和width代替
茫茫大海 2010-11-20
  • 打赏
  • 举报
回复
什么意思啊?你的b数组到底是怎么定义的啊!看的不是很懂!
Jlins 2010-11-20
  • 打赏
  • 举报
回复
+[Quote=引用 3 楼 wyang1991 的回复:]
for(int i=0,int m=0,int n=0;i<a.length;i++){
b[m][n]=a[i]; //m为行,n为列
n++;
if(n>b[m].length){
n=0;
m++;
if(m>b.length) {
System.out.println("数组长度太大");
break;
}
}
}
[/Quote]
caofaping 2010-11-20
  • 打赏
  • 举报
回复
代码不多就把代码贴出来,多就贴主要的,随便把错误也贴出来。你这样说我们怎么帮你!
茫茫大海 2010-11-20
  • 打赏
  • 举报
回复
真的不懂,你要干什么!
pepsi_yr 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hudie1234567 的回复:]
真的不懂,你要干什么!
[/Quote]

就是我做了一个迷宫程序,地图文件是写在记事本里的,想这样:wall,wall,,wall,,exit.....

地图文件的第一行可以获取到地图的大小,也就是二维数组的行和列。

本来是想直接读取进二维数组,但发现用不了split(",")这个方法,所以才出现上面那个先读进一维数组,然后我想把那个一维数组再复制到二维数组作为地图,这样描述不知道是否能清楚些?

如果你知道怎么能将该文件直接读进二维数组也好,实在想不到什么方法读进去
pepsi_yr 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 caofaping 的回复:]
引用 2 楼 pepsi_yr 的回复:
String b[][];
就是b[][]的行和列已经从文件中获取
所以就当他们是已知的就好,可以用row和width代替


值确定,两个for搞定?
[/Quote]
试过两个for,不知道为什么老报错
pepsi_yr 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wyang1991 的回复:]
for(int i=0,int m=0,int n=0;i<a.length;i++){
b[m][n]=a[i]; //m为行,n为列
n++;
if(n>b[m].length){
n=0;
m++;
if(m>b.length) {
System.out.println("数组长度太大");
break;
}
}
}
[/Quote]
报错Exception in thread "main" java.lang.NullPointerException
是什么意思啊
caofaping 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pepsi_yr 的回复:]
String b[][];
就是b[][]的行和列已经从文件中获取
所以就当他们是已知的就好,可以用row和width代替
[/Quote]

值确定,两个for搞定?

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧