首先为标题感到抱歉,想不出别的了。我目前正在完成一个关于JetBrains Hyperskill的项目,该项目是一个单位转换器,用户可以在其中转换重量、长度和温度单位。我几乎完成的项目,转换工作很好,但我有一个问题与用户输入。
用户输入由以下部分组成:
<number> +
<(unit name) or (degree + unit name) or (degrees + unit name)> +
<random word like "to" or "in"> +
<(unit name) or (degree + unit name) or (degrees + unit name)>
因此,用户可以输入如下内容:
val amount=scan.todouble()
-要转换的数量val source=scan.nextline().touppercase()
-这应该是像“摄氏”和“摄氏度”这样的输入val word=scan.next()
-随机单词val target=scan.nextline().touppercase()
-这也应该读取输入,如“摄氏”和“摄氏度”我的问题--如何使next()或nextLine()同时适用于“华氏度”和“华氏度”(有效输入),但如果用户键入其他内容,则控制台中会打印错误消息,如“parse error”?
“字”令牌真的是随机的吗?如果是to或in,那么你可以在上面拆分字符串,然后你就有了
<value> <source units>, <target units>
如果您知道如何处理这些问题,您也可以使用regex,例如
(\d+) (degree \w+|degrees \w+|\w+) \w+ (.+)
在那里你把你关心的每个部分都放在一个捕捉组里。
我很难想出如何正确使用扫描仪来验证用户输入。例如,程序需要用户输入int,用户只能输入正数,如果用户输入“apple”、“delicious apple”或负数,问题将显示错误消息。我尝试了下面的代码,然后我发现了一个令人不安的问题,“那不是一个数字!”我不知道是什么引起了这些问题。。。。 我在“number=sc.nextInt()”下面加了一行代码,意外地解决了这个问题,现在我的代码变成: 这
一段时间以来,我一直在做一个作为拼字字典的编程作业。该程序接受用户的输入,并输出一个包含单词列表的文件,这取决于用户从菜单中请求的内容。我遇到的问题与Scanner.nextLine()有关。 我不是很清楚为什么,但由于某种原因,有时我必须按一次enter键,然后我的代码才会接受我的输入并将其存储为变量。本质上,我最终输入了两次输入。我尝试在代码周围插入Scanner.nextLine()以“占用
我让一个用户输入一个整数字符串,然后将它们添加到ArrayList,但我需要验证每个条目是否为正整数。我尝试了do/while循环、嵌套while环,而使用嵌套if和每个循环都会遇到自己的一组问题。 作为我当前设置的示例:用户输入例如:1 2 3 4 pageVar是我的扫描仪,pageRef是我的ArrayList 运行这个my while在等待更多的输入时被卡住了,我不知道如何打破它。
问题内容: 我正在使用Java的扫描仪读取用户输入。如果我仅使用nextLine一次,那就可以了。使用两个nextLine时,第一个不会等待用户输入字符串(第二个会输入)。 输出: X:Y :(等待输入) 我的密码 任何想法为什么会发生这种情况?谢谢 问题答案: 您可能像以前那样调用方法。这样的程序是这样的: 演示您所看到的行为。 问题是不消耗,因此下一个调用将消耗它,然后等待读取的输入。 您需要
从指定范围(0,20)内且为int的用户处获取有效整数的最佳方法是什么。如果他们输入了无效的整数打印输出错误。 我在想这样的事情: 这是正确的还是有更好的方法?
在Java方面,我是一个业余爱好者,所以请原谅我的问题,如果它看起来很愚蠢:-P我有以下代码,旨在计算文件中的行数: 所以它很好,但我想将扫描仪重新用于其他目的,但nextLine已移动到文件的最后一行,我想将其重置回第一行。 (取而代之的是,我不得不使用另一台扫描仪来实现另一个目的,而在我看来,这似乎没有它应有的优雅。) 我肯定肯定有一种扫描仪方法可以将计数器重置为零? 谢谢 CJ