最近自学java,对输入这块不是很明白,今晚上就写了一段
import java.util.Scanner;/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 *//**
 *
 * @author Administrator
 */
public class BeiShuYinShu {
    public static void main(String args[]) {
        int i;
        int[] a = null;
        ass: for(i=0;i<2;i++){
            switch(i) {
                case 0:
                    System.out.println("请输入第一个数:");
                    Scanner m = new Scanner(System.in );
                    a[0] = m.nextInt();
                    break;
                case 1:
                    System.out.println("请输入第二个数:");
                    Scanner n = new Scanner(System.in);
                    a[1] = n.nextInt();
                    break;
            }
        }
        System.out.println(a);    }}
但是运行的时候老是出错:
请输入第一个数:
5
Exception in thread "main" java.lang.NullPointerException
        at BeiShuYinShu.main(BeiShuYinShu.java:23)
Java Result: 1
搞不清楚是为什么,是不是回车需要用函数什么的触发设么的啊,请高手指教,还有如果用
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String m;
m = br.readLine();
怎样实现多对多个数字的输入?

解决方案 »

  1.   

    数组a没有初始化, int[] a = new int[2];
    BufferedReader和Scanner类似,得自己用Integer.parseInt转型
      

  2.   

    readLine()是一次读取一行,所以每次输入一个数都要回车。
    double s[] = new double[3]; //使用数组存放3个数
    try{
    InputStreamReader reader = new InputStreamReader(System.in);
    BufferedReader input = new BufferedReader(reader);
    System.out.println("give your test number:\n");
    for(int i=0;i<3;i++) { //输入3个数,每行输入一个
    s[i] = Double.valueOf(input.readLine());
    }

    }catch (Exception e) {
    e.printStackTrace();
    }
      

  3.   

    还有,你输出的时候,数组没有重写toSting方法,输出时候会有问题,你可以这样输出
    System.out.println(a[0]+","+a[1]);
      

  4.   

    ??2L的,
    s[i] = Double.parseDouble(input.readLine());
      

  5.   

    JDK6.0可以使用java.io.console类,它好像已经取代了scanner,使用起来也简单。
    数组需要用new初始化。
      

  6.   

    double s[] = new double[3];                                        //使用数组存放3个数
            try{
                InputStreamReader reader = new InputStreamReader(System.in);
                BufferedReader input = new BufferedReader(reader);
                System.out.println("give your test number:\n");
                for(int i=0;i<3;i++) {                                        //输入3个数,每行输入一个
                    s[i] = Double.valueOf(input.readLine());
                }
                
            }catch (Exception e) {
                e.printStackTrace();
            }