日期:2014-05-20  浏览次数:20614 次

请教一个java方法参数传入的问题
本帖最后由 lixiang201101 于 2013-11-25 23:15:08 编辑
java初学者
老是报错说类型转换有问题,请大侠们帮忙看看。
import java.util.*;
import java.io.*;
public class Tongxun
{
//String info[][];

public static void  display(String info[][])
{
int i;
System.out.println("编号    姓名      性别       电话      通信地址");
for(i=0;i<info.length;i++)
  System.out.println(info[i][0]+"   "+info[i][1]+"   "+info[i][2]+"   "+info[i][3]+"   "+info[i][4]);
}
   public static void  Input(String info[][])
   {
   int i,tmp;
   Scanner sc = new Scanner(System.in);
   System.out.println("请输入您要添加的人的个数");
i=sc.nextInt();
sc.close();
System.out.println("请输入:姓名、性别、电话、通信地址,中间空格隔开");
   //这是用于获取键盘输入的方法
   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
   String inputStr = null;
for (int j=0;j<i;j++)
{
   //br.readLine():每当在键盘上输入一行内容按回车,刚输入的内容将被br读取到。
   while ((inputStr = br.readLine()) != null)
   {
   //将用户输入的字符串以逗号( )作为分隔符,分隔成个字符串
   String[] posStrArr = inputStr.split(" ");
   tmp=j;
   info[j][0]= String.valueOf(tmp);
   for(int k=1;k<5;k++)
   {
    info[j][k]=posStrArr[k-1];   
   }
     
   }
}
  
   }
public static void main(String[] args)
{
Tongxun t=new Tongxun();
String Info[][]=new String[100][5];
Tongxun.Input(Info[100][5]);
}

}



?

------解决方案--------------------
Info[100][5]已经是你定义的二维数组里的一个值(String对象)了,你的Input方法要求参入一个二维数组,而你参的是一个String对象,能不报错么。换成Tongxun.Input(Info);就可以了。另外建议楼主有空看下jav变量名命,方法名命,代码风格的规范。
------解决方案--------------------
要求的参数和传入的参数不一致

------解决方案--------------------
引用:
Info[100][5]已经是你定义的二维数组里的一个值(String对象)了,你的Input方法要求参入一个二维数组,而你参的是一个String对象,能不报错么。换成Tongxun.Input(Info);就可以了。另外建议楼主有空看下jav变量名命,方法名命,代码风格的规范。
正解,撸主对数组变量的声明和使用不太清楚String Info[][]=new String[100][5];这句话声明了一个名为Info的二维数组,要使用这个数组,只要使用Info这个引用即可;不过撸主,接收输入的代码还有错
------解决方案--------------------
方法名应该改为public?static?void??display(String[][]?info)
在方法参数里面前面是类型,后面是参数名