[题目:
  编写一个输入人员信息并存储到内存的程序,输入部分可参考InputFromConsole类,人员信息包括name, sex, age.并且依据age对人员列表重新升序排序。]
_______________________________________________________
下面这个是我自己写的,程序能够正常运行,但执行后,在输入第一个名字的时候就出错了,还请各位帮忙修改一下,是什么地方的问题,谢谢咯~~~~
______________________________________________________import java.util.Scanner;public class PersonMessage {
    String[] Name= null;
    String[] Sex = null;
    int[]    Age = null;
        public void InputFormConsole(){                   //录入信息
           for(int i=0; ; i++){
            System.out.print("请输入名字:");
            Scanner scname= new Scanner(System.in);
            String name = scname.next();
            Name[i] = name;
            
            System.out.print("请输入性别:");
            Scanner scsex= new Scanner(System.in);
            String sex = scsex.next();
            Sex[i] = sex;
            
            System.out.print("请输入年龄:");
            Scanner scage = new Scanner(System.in);
            int age = scage.nextInt();
            Age[i] = age;
            
            System.out.print("是否继续录入:(Y/N)");
            Scanner scInput = new Scanner(System.in);
            String Input = scInput.next();
            
              if (Input.equals("Y")){                     //判断是否继续录入信息
                  PersonMessage r = new PersonMessage();
                  r.InputFormConsole();                  //继续录入信息
              }else {
                  PersonMessage r1 = new PersonMessage();
                  r1.OrderAge();                          //转到age排序
                  }//
            
           }
                       
         }
        
       public void OrderAge(){        
           String NameTemp,SexTemp;
        int AgeTemp;                             //年龄升序排列
           for(int i=0; i<Age.length; i++){
               for(int j=i ;j<Age.length-1; j++){     //排序
                   if(Age[j+1] > Age[j]){
                       AgeTemp = Age[j+1];
                       Age[j+1] = Age[j];
                       Age[j] = AgeTemp;
                       
                       NameTemp = Name[j+1];
                       Name[j+1] = Name[j];
                       Name[j] = NameTemp;
                       
                       SexTemp = Sex[j+1];
                       Sex[j+1] = Sex[j];
                       Sex[j] = SexTemp;
                   }
               }
           }
           
           for(int k=Age.length ;k >= 0 ; k-- ){
               System.out.println("姓名:"+Name[k]+",性别:"+Sex[k]+",年龄:"+Age[k]);
           }
       }
    /**
     * @param args
     */
    public static void main(String[] args) {
       PersonMessage Person =new PersonMessage();
              Person.InputFormConsole();
              
                
    }}

解决方案 »

  1.   

    这个问题很容易啊
    程序我没试,但我看到
       String[] Name= null; 
    这样做的话还是没有初始化数组Name啊,没有这种形式初始化数组的,
    应该会报空指针错误。
    这样试试String[] name=new String[1000000];
      

  2.   

    有几处问题:
    1.  String[] Name= null; 
        String[] Sex = null; 
        int[]    Age = null; 
    这样第一数组后,没有初始化数组,导致在输入后出现空指针异常
    2.           for(int k=Age.length;k >= 0 ; k-- ){ 
                   System.out.println("姓名:"+Name[k]+",性别:"+Sex[k]+",年龄:"+Age[k]); 
               } 
    循环从int k=Age.length开始,会出现索引越界异常,数组中最大的下标索引为 Age.length-1
      

  3.   

    public class PersonMessage {
    String[] Name= new String[100];
    String[] Sex = new String[100];
    int[]    Age = new int[100];
                              .
                . 
                .
                .
                .            .
                .
                .
                .
       for(int k=Age.length-1 ;k >= 0 ; k-- ){
            System.out.println("姓名:"+Name[k]+",性别:"+Sex[k]+",年龄:"+Age[k]);
            }
           }
    ----------------------
    感谢各位的帮助!!!照你们指出的错误,我改正了一下,现在能够解决最开始的那个不能录入信息的问题了.
       不过在输出显示的时候就像下面这样,一连串的NULL.不知道是那儿又出错了. 
         还请大家帮忙再看看
    ----------------------请输入名字:小兵
    请输入性别:男
    请输入年龄:25
    是否继续录入:(Y/N)Y
    请输入名字:李五
    请输入性别:20
    请输入年龄:22
    是否继续录入:(Y/N)N
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
    姓名:null,性别:null,年龄:0
                .
                . 
                .
                .
                .