java - String.split() 和空值之后的解析

标签 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 = 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();
    }
}

vector 的两个打印都显示为空。怎么了?

最佳答案

您忘记初始化数组。这是完整的工作程序。

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();
    }

}

关于java - String.split() 和空值之后的解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777175/

相关文章:

java - 下面的HL7编码有什么错误?

基于 Java Swing MVC 的贪吃蛇游戏。问题切换难度

java - jfree 折线图显示每个指标的值

java - java.util.TreeMap 的子类在调用 put(key, value) 方法时给出 NullPointerException

Java:使用 TCP 套接字的简单 http GET 请求

java - HostConnection::get()建立新的主机连接0xafecbf90

java - 模块化 Maven 项目中的域类应该基于接口(interface)吗?

java - 在 clojure 中重复 "Have a nice day"用户请求的次数

Java/Scala多线程文件写入

java - 找到从 A 到 Z 的所有路径的有效算法?