0

在我的代码中,我要求用户输入三个不同的值除以空格。然后,我想将这三个不同的值分配给三个不同的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));
4

5 回答 5

2
  1. 接受用户的输入。

  2. 使用分隔符空间分割那条线,即“”。

  3. 在 for 循环内部将每个索引元素更改为双精度。通过使用 Double.parseDouble(splitted[i]);

于 2013-04-12T14:16:02.273 回答
1

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

String[] params = newDimensions.split(" ");
newHeight = Double.parseDouble(params[0]);
newWidth = Double.parseDouble(params[1]);
于 2013-04-12T14:15:07.067 回答
1

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

        String input = "12.4 19.8776 23.3445";
        String[] split = input.split(" ");
        for(String s : split)
        {
            System.out.println(Double.parseDouble(s));
        }
于 2013-04-12T14:16:14.993 回答
0

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

试试这个:

newHeight = Double.parseDouble(newDimensions.subString(1));
于 2013-04-12T14:14:36.707 回答
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());

仍有一些防御性问题可以解决。对您的 parse double 进行修剪是至关重要的。

于 2013-04-12T14:17:59.950 回答