从String中获取不同的值并将它们转换为Double Values

时间:2013-04-12 14:13:17

标签: java arrays string double

在我的代码中,我要求用户输入三个不同的值除以空格。 然后,我想将这三个不同的值分配给三个不同的 Double 变量。

我已尝试将此类字符串的第一个字符分配给我的双变量,但我无法成功。

有什么建议吗?

谢谢!

这是我正在尝试做的事情:

int decision = message();
String newDimensions;
double newHeight, newWidth, newLength;

if(decision == 1){
  newDimensions = JOptionPane.showInputDialog("Please enter the desired amount to be added" + 
                                            "\nto each dimension." +
"\nNOTE: First value is for Height, second for Width, third for Length" +
"\nAlso, input information has to have a blank space between each value." +
"\nEXAMPLE: 4 8 9");

newHeight = Double.parseDouble(newDimensions.charAt(0));

5 个答案:

答案 0 :(得分:2)

  1. 接受用户的输入。

  2. 使用分隔符空格分割该行,即“”。

  3. 在for循环中将每个索引元素更改为double。使用Double.parseDouble(splitted [i]);

答案 1 :(得分:1)

您可以先使用String.split拆分输入,然后使用Double.parseDouble Double.parseDouble解析每个变量,将它们读入Double变量。

String[] params = newDimensions.split(" ");
newHeight = Double.parseDouble(params[0]);
newWidth = Double.parseDouble(params[1]);

答案 2 :(得分:1)

获取输入,用空格拆分并解析每个Double。此代码不会清理输入。

        String input = "12.4 19.8776 23.3445";
        String[] split = input.split(" ");
        for(String s : split)
        {
            System.out.println(Double.parseDouble(s));
        }

答案 3 :(得分:0)

Double#parseDouble(str)需要一个字符串,并且您正在尝试传递一个字符。

试试这个:

newHeight = Double.parseDouble(newDimensions.subString(1));

答案 4 :(得分:0)

尝试这样的事情:

newDimensions = JOptionPane.showInputDialog(...

newDimensions = newDimensions.trim();

String arr[] = newDimensions.split(" ");

double darr[] = new double[arr.length];

for(int i=0;i<arr.length;i++) darr[i] = Double.parseDouble(arr[i].trim());

仍然可以采取一些防御性问题。对解析双重进行修剪是很重要的。