我可以更改啥以使此代码正常工作?
Posted
技术标签:
【中文标题】我可以更改啥以使此代码正常工作?【英文标题】:What can I change to make this code work properly?我可以更改什么以使此代码正常工作? 【发布时间】:2013-09-24 22:56:26 【问题描述】:在发布我正在编写的程序的 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.");
【问题讨论】:
什么? drjava 告诉你一些事情——它是什么?谁说你缺少一个变量?空括号与任何东西有什么关系? 【参考方案1】:在发布我正在编写的程序的 alpha 版本之前,我正处于测试的最后阶段。
您正在创建一个专业的应用程序?请告诉我们更多信息。
我明白 drjava 告诉我什么,我缺少一个变量,但我也不明白,因为我从来没有在名称“()”下创建一个变量。我什至不确定您是否可以将任何类型的变量设置为开闭括号。
在此处发布问题时,如果您有来自编译器的错误消息,请将整个错误消息与您的问题一起发布。不要转述它。并在代码中通过明显的注释指出错误发生的位置,即// ****** error here *****
。
无论如何,我正在测试,虽然它有效,但它不是我想要的方式。我进入扫描仪“B先生”。当然没有引号。该程序没有打印 B。我认为它可能是 Mr. 和 B 之间的空格,因为其他带有空格的输入也是如此。
不要使用Scanner#next()
,它只会获得下一个标记——到达空格之前的下一个单词(这里是先生),并且不会获得该行的其余文本。而是使用 Scanner#nextLine()
来获取整行信息。
例如:
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()
方法。这是我不得不怀疑您在您的阶段制作专业申请的原因之一。再说一次,我觉得我还没有到创造一个的阶段,所以请不要把这当作一种侮辱,只是一种好奇。
【讨论】:
以上是关于我可以更改啥以使此代码正常工作?的主要内容,如果未能解决你的问题,请参考以下文章
在double,int,long和short类型中,有多少可以填充空白以使此代码输出0? [重复]