-2

在发布我正在编写的程序的 alpha 版本之前,我正处于测试的最后阶段。这可能是一个愚蠢的问题,但我似乎无法弄清楚。我了解 drjava 告诉我的内容,即我缺少一个变量,但我也不明白,因为我从未在名称“()”下创建一个变量。我什至不确定您是否可以将任何类型的变量设置为开闭括号。无论如何,我正在测试,虽然它有效,但它不是我想要的方式。我进入扫描仪“B先生”。当然没有引号。该程序没有打印 B。我认为它可能是 Mr. 和 B 之间的空格,因为其他带有空格的输入也是如此。知道代码中有一个巨大的故障,我无法发布我的程序版本。我想知道为什么,我试图通过更改 ownername.next(); 来修复它 到 ownername.nextLine 和 ownername.next 以及 ownername.nextScanner 和 ownername.nextScanner。这就是错误出现的地方,当它说它无法找到变量时,直到我将其更改回它的原始代码,如下所示。

Scanner ownersname = new Scanner(System.in);
   String sownersname = ownersname.next();
   System.out.println(sownersname + "? That is a nice name.");
4

1 回答 1

2

在发布我正在编写的程序的 alpha 版本之前,我正处于测试的最后阶段。

您正在创建一个专业的应用程序?请告诉我们更多关于这方面的信息。


我了解 drjava 告诉我的内容,即我缺少一个变量,但我也不明白,因为我从未在名称“()”下创建一个变量。我什至不确定您是否可以将任何类型的变量设置为开闭括号。

在此处发布问题时,如果您有来自编译器的错误消息,请在您的问题中发布整个错误消息。不要转述它。并通过代码中的明显注释来指出,即// ****** error here *****错误发生的位置。


无论如何,我正在测试,虽然它有效,但它不是我想要的方式。我进入扫描仪“B先生”。当然没有引号。该程序没有打印 B。我认为它可能是 Mr. 和 B 之间的空格,因为其他带有空格的输入也是如此。

不要使用Scanner#next()which 只获得下一个标记 - 到达空格之前的下一个单词(这里,先生),并且不会得到该行的其余文本。而是使用Scanner#nextLine()which 让你获得整条线路。

例如:

Scanner ownersname = new Scanner(System.in);
// String sownersname = ownersname.next(); // *** not this ***
String sownersname = ownersname.nextLine(); // *** but rather this ***
System.out.println(sownersname + "? That is a nice name.");

知道代码中有一个巨大的故障,我无法发布我的程序版本。

说真的,您正在创建一个专业的应用程序?我还没有到那个阶段,这就是我问的原因。


我想知道为什么,我试图通过更改 ownername.next(); 来修复它。到 ownername.nextLine 和 ownername.next 以及 ownername.nextScanner 和 ownername.nextScanner。这就是错误出现的地方,当它说它无法找到变量时,直到我将其更改回它的原始代码,如下所示。

我很想看看你的nextLine()方法尝试,因为那是解决方案。也许您试图在不使用方法括号的情况下调用该方法。

我还假设您熟悉 Java API 并查找了 Scanner 条目。如果你这样做了,你会马上看到nextScanner()这个类没有方法。这是我不得不怀疑您在您的阶段制作专业申请的原因之一。再说一次,我觉得我还没有到创造一个的阶段,所以请不要把这当作一种侮辱,只是一种好奇。

于 2013-09-24T22:57:36.017 回答