java中,二维数组问题

比如有String[] a = {"1","2","3"} ,String[] b ={"a","b","c"},定义一个二维数组String[][] c={},怎么将数组c的第一个元素随机输出a中的一个元素,数组c中的第二个元素随机输出b中的一个元素

你这个要求实现起来比较复杂,首先你需要声明一个静态方法,参数是一个数组,返回值是一个String,大概形式如下:

public static final String getString(final String[] array){
Random r = new Random();
int index = Math.abs(r.nextInt()) % array.length;
return array[index];
}

或者返回类型为一个字符串数组:
public static final String[] getStringArray(final String[] array){
Random r = new Random();
int index = Math.abs(r.nextInt()) % array.length;
String[] s = {array[index]};
return s;
}

然后在String[][] c={}里这样写:
String[][] c={getStringArray(a),getStringArray(b)};

基本上思路就是这样。如果你不想传参的话,可以在getString和getStringArray方法内声明一个数组,从里面取值。

PS:从来没见过这种用法,说实话,如果真碰到了这种用法,这个程序设计的可够差劲的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-09
public class ArrayTest {
public static void main(String[] args) {
String[] a={"1","2","3"};
String[] b={"a","b","c"};
String[][] c =new String[5][2];
for(int i=0;i<5;i++){
int k=(int)(Math.random()*3);
c[i][0]=a[k];
c[i][1]=b[k];
}
for(int i=0;i<5;i++){
for(int j=0;j<2;j++){
System.out.println(c[i][j]);
}
}
}
}//这样就行了。
第2个回答  2011-08-08
用随机数啊 限制随机数的产生 让他只能产生1 2 3 然后随机两个数组下标 最后给c赋值
第3个回答  2011-08-09
用随机数啊 随即产生1 2 3 math.randow()*3 不为0 就好 然后随机两个数组下标 最后给c赋值
第4个回答  2011-08-09
是啊,用随机数

关于java中二维数组输出的问题
int[][] arr={new int [1] {1},new int [2] {2,3},new int [3] {4,5,6}};则二维数组arr.length等于3,表示它由3个一维数组组成,即3行。arr[0].length表示第1个一维数组的长度1,即1列。arr[1].length表示第2个一维数组的长度2,即2列。arr[2].length表示第3个一维数组的长...

java高手:java定义二维数组问题
int a[][] = new int[3][2]; 表示定义一个三行二列的二维数组,但是a[0] = {1,6}; 是对一维数组进行赋值,而a是二维数组无法使用一维数组的赋值方法,所以程序会报错。该代码的正确方法应该是:int a[][] = new int[3][2];a[0][0]=1;a[0][1]=6;...

java关于二维数组的问题。
首先这个二维数组可以看成是一个标准的 3X3 的矩阵 第一个循环 :for(int i = 0;i<arr.length;i++){ for(int j=0;j<arr.length;j++){ System.out.print(arr[i][j]);} System.out.println();} 第一轮大循环:i 取值为0时,j取值0,1,2,则打印:arr[0][0],arr[0][1],a...

java 定义和输入并输出一个二维数组求大神指点
第一个for循环for(int i=0;i<3;i++); 这边有一个分号是咋个意思,把分号去掉。

Java二维数组问题
你的这段写法里面有下面的问题:1、数组的定义:Object [][] arr = new Object[4][];数组长度必须明确,方可使用,如:Object[][] arr = new Object[4][4];。2、赋值:arr[0][0] = new String[0]["字符串张三"];数组的方括号中的是数组下标,不是值,如:arr[0][0] = new ...

java中二维数组赋值的问题!如下代码为什么老是报错java.lang.ArrayInd...
由于这里只有问题代码,也不知道题意,没法从已有的错往未知的正确上纠正。。楼上你也别硬撑,觉得“多层嵌套正常”只能反映自己不够重视算法而已。有几个O(L*M*N*O)这样的算法能投入实用?所以这里效率不仅重要而且至关重要。何况你在不明白lz题意的情况去纠正数组越界的表象,可以预见,最多做到治...

为什么vscode的Java运行二维数组不可以?
VSCode的Java运行二维数组可能出现问题的原因有多种,例如:代码语法错误,例如二维数组定义和初始化的方式不对;缺少必要的类库和工具,例如Java编译器或运行环境;编译和运行的配置问题,例如没有正确设置编译器和运行参数等;代码逻辑问题,例如二维数组的访问方式不正确。建议检查代码,确保语法正确,并确保你...

java 二维数组问题
public class DD { public static void main(String[] args) { int arr[][] = new int[][] { { 4, 5 }, { 6, 7 } };System.out.println("二维数组中的各个元素是");for (int x[] : arr) { for (int i=0;i<x.length;i++) {\/\/这里for (int i : x) 改成for (int...

java的二维数组问题
以下是定义的加法函数(使用try捕获异常这么简单)public static int[][] add(int[][]a,int[][]b){try{int sum = 0;int[][]c=new int[a.length][a.length ];for(int i=0;i<c.length;i++) { for(int j=0;j<c.length;j++) { c[i][j]=a[i][j]+b[i][j];...

JAVA输出二维数组执行不了,求大佬指点
1、 a0 没有定义第二维数组个数,这样就行:double [][]a0=new double[3][4];2、a0遍历出来的都是0.0,因为没有给a0赋值,只是赋值给了b;所以要遍历内容的话,可以遍历b数组内容。如:3、System.out.print("arr[i][j]"); 中不要加双引号,加了就是字符串,不是变量了。

相似回答