Java 在String.split()和null值之后进行分析

Java 在String.split()和null值之后进行分析,java,Java,我正在尝试在拆分为int后解析字符串。打印此字符串时,我收到空值 public class Usage { public int[] vectorA, vectorB; public String value; public String[] valueSplittedA, valueSplittedB; public void scan(){ Scanner sc = new Scanner(System.in); value = s

我正在尝试在拆分为int后解析字符串。打印此字符串时,我收到空值

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 int[] vectorA, vectorB; <-- declared but not initialized
vectorA=newint[valueSplittedA.length];

对于(inti=0;i您忘记初始化数组。这是完整的工作程序

import java.util.Scanner;
import cern.colt.Arrays;

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(" ");
        vectorA = new int[valueSplittedA.length];
        System.out.println("Enter the second Vector\n");
        scan();
        valueSplittedB = value.split(" ");
        vectorB = new int[valueSplittedB.length];
        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(Arrays.toString(vectorA));
        System.out.println(Arrays.toString(vectorB));
    }

    public static void main(String[] args){
        Usage u = new Usage();
        u.scanLine();
    }
import java.util.Scanner;
导入cern.colt.array;
公共类用法{
公共int[]向量a,向量b;公共字符串值;
公共字符串[]valueSplittedA,valueSplittedB;
公共无效扫描(){
扫描仪sc=新的扫描仪(System.in);
值=sc.nextLine();
}
public void scanLine(){//获取向量的用户值
System.out.println(“输入第一个向量\n”);
扫描();
valueSplittedA=value.split(“”);
vectorA=新整数[valueSplittedA.length];
System.out.println(“输入第二个向量\n”);
扫描();
valueSplittedB=value.split(“”);
vectorB=新整数[valueSplittedB.length];

对于(inti=0;iI),我没有看到任何代码实际实例化这些数组,尽管我在顶部看到了声明。
System.out.println(Arrays.toString(vectorA));
System.out.println(Arrays.toString(vectorB));
vectorA = new int[valueSplittedA.length];
for(int i = 0; i<valueSplittedA.length; i++){
    String temp = valueSplittedA[i];
    vectorA[i] = Integer.parseInt(temp);
}
import java.util.Scanner;
import cern.colt.Arrays;

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(" ");
        vectorA = new int[valueSplittedA.length];
        System.out.println("Enter the second Vector\n");
        scan();
        valueSplittedB = value.split(" ");
        vectorB = new int[valueSplittedB.length];
        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(Arrays.toString(vectorA));
        System.out.println(Arrays.toString(vectorB));
    }

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