0

int に分割した後に文字列を解析しようとしています。これを印刷しているときに null 値を受け取ります。

public class Usage {
    public int[] vectorA, vectorB; public String value; 
    public String[] valueSplittedA, valueSplittedB;

    public void scan(){
        Scanner sc = new Scanner(System.in);
        value = sc.nextLine();
    }

    public void scanLine(){ //Get users values for vectors
        System.out.println("Enter the first Vector\n");
        scan();
        valueSplittedA = value.split(" ");
        System.out.println("Enter the second Vector\n");
        scan();
        valueSplittedB = value.split(" ");
        for(int i = 0; i<valueSplittedA.length; i++){
            String temp = valueSplittedA[i];
            vectorA[i] = Integer.parseInt(temp);
        }
        for(int i = 0; i<valueSplittedB.length; i++){
            String temp = valueSplittedB[i];
            vectorB[i] = Integer.parseInt(temp);
        }
        System.out.println(vectorA);
        System.out.println(vectorB);
    }

}

主な方法:

public class Five {
    public static void main(String[] args) {
        Usage usage = new Usage();
        usage.scanLine();
    }
}

ベクトルの両方のプリントはnullを示しています。どうしたの?

4

3 に答える 3

0

ベクトル変数を初期化するのを忘れました。

public int[] vectorA, vectorB; <-- declared but not initialized

NullPointerExceptionしたがって、実行時にa をスローします。

vectorA[i] = Integer.parseInt(temp);

あなたがそれを修正するとき、私はあなたがの内容を印刷したいと思っていると思いvectorAますvectorB

System.out.println(Arrays.toString(vectorA));
System.out.println(Arrays.toString(vectorB));
于 2013-11-04T21:12:39.557 に答える