首页 > 解决方案 > 从字符串中提取每个单独的数字

问题描述

我有这个作为输入“1 2 3 4 5”,我想要这样

int[] numbers = new int[5];
number[0] = 1;
number[1] = 2;
number[2] = 3;
number[3] = 4;
number[4] = 5;

那么如何从字符串中提取每个数字并将其放入 int 数组中呢?

    ConsoleIO io = new ConsoleIO();
    int[] numbers = new int[5];

    io.writeOutput("Type in 5 numbers");

    String input = io.readInput();

    // If input is longer than 1 character for example, "1 2 3 4 5"
    if(input.length() > 1) {
        System.out.println(input.length());
        for(int y = 0; y < io.readInput().length(); y++) {
            numbers[y] = Integer.parseInt(io.readInput().substring(y, io.readInput().indexOf(" "))); 
        }
        return;
    }
    // If input is one number for example, "1"
    else {
        for(int i = 0; i < numbers.length; i++) {
            numbers[i] = Integer.parseInt(io.readInput());
        }
    }

else 有效,所以如果我输入一个数字并按回车键,然后按下一个数字,一切都很好。但是,如果我有一个中间有空格的数字序列(“1 2 3 4 5”),程序就会中断。

标签: javaarraysstring

解决方案


为什么不使用Scannerand then splitand parse

Scanner in = new Scanner(System.in);
String[] nums = in.nextLine().split(" ");
for(int i = 0; i <=5; i++) {
   numbers[i] = Integer.parseInt(nums[i]);
}

推荐阅读