从字符串中提取每个单独的数字 [英] Extract each seperate number from string

查看:44
本文介绍了从字符串中提取每个单独的数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将此作为输入"1 2 3 4 5",我想要这样子

I have this as an input "1 2 3 4 5" and I want to have it like this

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

其他方法有效,因此,如果我输入一个数字,然后按Enter键,然后再输入下一个数字,那一切都很好.但是,如果我有一个介于("1 2 3 4 5")之间的数字序列,程序就会中断.

The else works, so if I enter one number and press enter and then the next one, it's all good. But if I have a sequence of numbers with a space in between ("1 2 3 4 5") the program just breaks.

推荐答案

String input = io.readInput();
int[] arr = new int[5];

if(input.length() >= 5){
    String[] c = input.split(" ");
    for(int i = 0; i < c.length(); i++){
        arr[i] = Integer.parseInt(c[i]);
    }
}

这篇关于从字符串中提取每个单独的数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆