当前位置: 首页 > 知识库问答 >
问题:

无法在其他类中使用扫描仪字符串输入

容柏
2023-03-14

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

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

还有一个修饰符,根据输入的字符串有五个条件(例如,如果this.inputString == "String1 "...),带有对无效输入的捕捉。类2多次调用“概率”构造函数来创建我的程序需要的概率。

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

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

当你有20位推荐人时,这显然是一件痛苦的事。因此,我想使用扫描仪获取用户输入,以便在运行Main时立即更改所有引用。当出现提示时,用户将输入String1,然后将输入设置为String变量。这是我的新代码,其中double1和double2是以前的扫描仪用户输入:

Scanner scan = new Scanner(System.in);

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

但这不起作用。我在1类修饰符的捕获中设置了错误,提示输入与条件中的任何字符串都不匹配。我尝试了输入String1和“String1”。有人知道为什么会这样吗?我对从2类输入到1类修饰符的双重输入没有问题。

共有1个答案

韦高阳
2023-03-14

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

 类似资料:
  • 我正试图用Java中的扫描器将一个字符串分成另外两个字符串。好像不起作用。我只能通过谷歌找到扫描仪用来读取控制台输入的例子。我从扫描仪的手册中找出了我做事情的方式,我不确定我错了什么。 第一个和第二个是空白的,我不知道为什么。

  • 我的问题是格式化通过扫描仪输入的字符串。我试图输入“Result is”,但printf()似乎只看到字符串的“Result”部分,那么空格的命令是什么呢?thx公司

  • 问题内容: 我可以将String转换为UTF-8数组,但不能像第一个String一样将其转换回String。 如何打印为字符串? 问题答案: 应该真的 这里的根本问题是String构造函数不是很聪明。String构造函数无法区分正在使用的字符集,并将尝试使用通常类似于ASCII或ISO-8859-1的系统标准对其进行转换。这就是为什么正常的A- Za-z看起来正确,但其他所有内容都开始失效的原因。

  • 问题内容: 我试图找到一种方法来从键盘输入。 我尝试使用: 该方法不存在。 我尝试了作为。但是,它并不总是在每种情况下都可行,因为我从我的方法中调用的另一个方法需要作为输入。因此,我必须找到一种显式将char作为输入的方法。 有什么帮助吗? 问题答案: 你可以从中提取第一个字符: 消耗正好一个字符,你可以使用: 要严格使用一个字符,可以使用:

  • 我创建了一个简单的扫描器,用于计算中的字符串数。txt文件。每个字符串位于下一行。它算错了,每次它给我数字297,甚至有超过20000个字符串。这个txt文件是由我编写的另一个程序创建的,它从网站获取链接,并使用FileWriter和BufferedWriter将其保存到。txt文件。可能有什么问题? 编辑:字符串示例:

  • 任何人都可以帮我解决这个问题。我接受三个输入:整数、双精度和字符串,但Scanner类不接受字符串值