A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐小骥 中级黑马   /  2012-8-10 20:15  /  1851 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 徐小骥 于 2012-8-10 21:23 编辑

import java.util.Scanner;


public class test1 {
        private static String[] it=null;//声明数组
        private static int[] iit=null;
        
        
        private static void getit(int num,Scanner sc){
                iit=new int[num];//实例化一个int类型数组,与String数组对比
                it=new String[num];//实例化一个String类型数组
                for(int j=0;j<num;j++){
                        it[j]=sc.nextLine();//接受键盘键入并给数组各个元素赋值
                        iit[j]=Integer.parseInt(it[j]);//注释此行即可单独测试String数组,但是第一元素会为空,且所以元素会后移一位
                }
        }        
        private static void pl(String[] it,int[] iit,int num){
                for(int j=0;j<num;j++){
                        System.out.println(j+"元素分别为  String:"+it[j]+"   ——Int:"+iit[j]);
                }
        }
        public static void main(String[] args){
                Scanner sc= new Scanner(System.in);
                int num=sc.nextInt();
                getit(num,sc);
                pl(it,iit,num);
        }        
}
//报错:Exception in thread "main" java.lang.NumberFormatException: For input string: ""
//第一个输入的值仅仅用来定义数组的长度,为什么在int数组中能很好的运行而在String中会循环一次并给String第一个元素赋空值?
//如果只给String数组赋值,第一个元素总是空值,这是怎么回事?

5 个回复

倒序浏览
  1. import java.util.Scanner;


  2. public class test1 {
  3.          private static String[] it=null;//声明数组
  4.          private static int[] iit=null;
  5.          
  6.          
  7.          private static void getit(int num,Scanner sc){
  8.                  iit=new int[num];//实例化一个int类型数组,与String数组对比
  9.                  it=new String[num];//实例化一个String类型数组
  10.                  for(int i=0;i<num;i++){
  11.                          it=sc.nextLine();//<font color="magenta">这里应该是it[i]吧</font>
  12.                          iit=Integer.parseInt(it);//<font color="magenta">这里应该是iit[i]和it[i]吧</font>
  13.                  }
  14.          }        
  15.          private static void pl(String[] it,int[] iit,int num){
  16.                  for(int i=0;i<num;i++){
  17.                          System.out.println(i+"元素分别为  String:"+it+"   ——Int:"+iit);
  18.                  }
  19.          }
  20.          public static void main(String[] args){
  21.                  Scanner sc= new Scanner(System.in);
  22.                  int num=sc.nextInt();
  23.                  getit(num,sc);
  24.                  pl(it,iit,num);
  25.          }        
  26. }
  27. //报错:Exception in thread "main" java.lang.NumberFormatException: For input string: ""
  28. //第一个输入的值仅仅用来定义数组的长度,为什么在int数组中能很好的运行而在String中会循环一次并给String第一个元素赋空值?
  29. //如果只给String数组赋值,第一个元素总是空值,这是怎么回事?
复制代码
回复 使用道具 举报
杨震 发表于 2012-8-10 20:38

是的 这个网站太智能了 被识别成了斜体,我还在纳闷怎么代码变成斜体了
回复 使用道具 举报
杨震 发表于 2012-8-10 20:38

现在改好了 把 改成[j]
回复 使用道具 举报
it=sc.nextLine();//接受键盘键入并给数组各个元素赋值
这个也要改吧
回复 使用道具 举报
不要沉啊!!求指导
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马