在java中解析字符串数组

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”

Dam*_*ash 5

您遇到的问题是您在循环中创建了一个新数组。您应该将其取出并进行初始化。

  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)