Osc*_*r F 2 java arrays string double parsing
sNums = scanString.nextLine();
String[] num = sNums.split(" ");
for (int i = 0; i < num.length; ++i)
{
numbers = new double[i+1];
numbers[i] = Double.valueOf(num[i]);
}
for(double item: numbers)
out.print(item + " ");
Run Code Online (Sandbox Code Playgroud)
我正在尝试将在这种情况下为“num”的数字字符串更改为双精度数组。我很确定这应该可行,但出于某种原因,它将“0.0”存储到输入的每个元素中,除了最后一个。例如,如果我输入“1 5 7 90 52[enter]”,输出应该是“1.0 5.0 7.0...etc”,但我得到的是“0.0 0.0 0.0 0.0 52.0”
您遇到的问题是您在循环中创建了一个新数组。您应该将其取出并进行初始化。
String[] num = sNums.split(" ");
double[] numbers = new double[num.length]; // The valid place for loop
for (int i = 0; i < num.length; ++i)
{
numbers[i] = Double.valueOf(num[i]);
}
for(double item: numbers) {
out.print(item + " ");
}
Run Code Online (Sandbox Code Playgroud)