我从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
有更有效的方法吗?
答案 0 :(得分:2)
String your_number_string;
String[] numbers = your_number_string.split(" ");
答案 1 :(得分:0)
您可以使用String.split()
分隔输入。
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+