在一条线上读数字

时间:2012-03-13 06:48:44

标签: java

我从stdin那里得到了一个输入。此输入将是一行数字。例如,变量行的有效值为:

 1 2 3 4 5 6 7 8 9 10

我知道会有多少数字,我已将其存储在变量N中。我试图将这些数字存储在大小为N的数组中。

String a="";
for(int i=0; i<line.length(); i++){
    if(line.charAt(i)!=' ')
        a = a+ line.charAt(i);
    else{
        numbers[x++]=Integer.parseInt(a);
        a="";
    }
}
numbers[x]=Integer.parseInt(a); //to store the last number in the array

有更有效的方法吗?

3 个答案:

答案 0 :(得分:2)

String your_number_string;
String[] numbers = your_number_string.split(" ");

答案 1 :(得分:0)

您可以使用String.split()分隔输入。

Check this.

String input = "1 2 3 4 5 6 7 8 9 10";
String[] splits = input.split(" ");

for(String num : splits){    
    if (num != null && num.trim() != "") {
        try {
            numbers[x++] = Integer.parseInt(num);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
    }
}

答案 2 :(得分:0)

在任何情况下,使用StringBuilder#append()连接字符效率更高,而不是重复调用a = a+