无法在其他类中使用Scanner String输入

时间:2014-01-04 21:29:18

标签: java java.util.scanner

我正在开发一个有两个类的程序。 Class 1包含一个名为“Probability”的构造函数,它接受三个输入:一个String和两个double。此代码如下所示:

public Probability(String inputString, double inputDouble1, double inputDouble2) {
    this.inputString = inputString;
    this.inputDouble1 = inputDouble1;
    this.inputDouble2 = inputDouble2;
}

还有一个修饰符,它有五个条件,具体取决于输入的字符串(即,如果this.inputString ==“String1”...),带有无效输入的catch。 Class 2多次调用“Probability”构造函数来创建我的程序所需的概率。

所以这就是我的困境。根据我正在做的事情,我需要输入五个字符串输入。之前,我正在进入我的Class 2代码并手动更改对该String的所有引用(引用是“String1”,“String2”等等)。换句话说,代码看起来像这样:

Probability P1 = new Probability("String1", double1, double2);

当你有二十个参考文献时,这显然很痛苦。所以我想使用扫描仪来获取用户输入,以便在运行Main时立即更改所有引用。用户在提示时输入String1,然后将输入设置为String变量。这是我的新代码,其中double1和double2是以前的Scanner用户输入:

Scanner scan = new Scanner(System.in);

System.out.print("Please enter a string: ");
String userInput = scan.nextLine();
Probability P1 = new Probability(userInput, double1, double2);

但这不起作用。我在Class 1修饰符中得到了我在catch中设置的错误,该错误表明输入与条件中的任何字符串都不匹配。我已经尝试了输入String1和“String1”。有没有人有任何想法为什么会这样?从Class 2输入到Class 1修饰符的双输入没有问题。

1 个答案:

答案 0 :(得分:0)

是的,我的朋友和其他人建议你必须使用equals方法比较两个字符串而不是使用==运算符,这是用于引用匹配而不是内容匹配。