Java 输入“时关闭扫描仪”;0“;
我正在编写一个程序,其中用户输入一个字符串输入,程序将查找字数和整数。当用户输入“0”时,扫描仪应关闭 我的代码Java 输入“时关闭扫描仪”;0“;,java,java.util.scanner,Java,Java.util.scanner,我正在编写一个程序,其中用户输入一个字符串输入,程序将查找字数和整数。当用户输入“0”时,扫描仪应关闭 我的代码 import java.util.Scanner; public class RunMe { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = in.nextLine(); Counter numbers = new Co
import java.util.Scanner;
public class RunMe
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String input = in.nextLine();
Counter numbers = new Counter();
Counter words = new Counter();
Scanner s = new Scanner(input).useDelimiter("\\s");
while(s.nextInt() != 0)
{
if(s.hasNextInt())
{
numbers.add();
}
else
{
words.add();
}
}
s.close();
in.close();
System.out.println("Number of numbers : " + numbers.value());
System.out.println("Number of words : " + words.value());
}
}
还有柜台
public class Counter
{
private int value;
public int add()
{
value++;
return value;
}
public int value()
{
return value;
}
}
当我运行我的程序时,我得到以下例外:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at RunMe.main(RunMe.java:13)
更改主循环的条件以检查是否有要读取的内容,如果数字等于0,则使用中断符
解决方案
对于扫描仪,控制台输入必须使用“回车”输入。为了避免这种情况,需要其他一些本机库,例如。在。中还有其他选项。请在您的帖子中也包含一个示例输入,好吗?.s.nextInt()将只读取一个数字,而不读取一个字符串(单词)。当您尝试输入一个单词时,s.nextInt()将为您提供InputMismatchException,因为它需要一个数字。检查输入是否为int的好方法@谢谢你。这很好:)当输入0时,扫描仪仍然不会关闭。我必须单击“回车”来计算字数和numbers@KonstantinaPapagiannopoulou你的意思是你不想点击“回车”键(即当用户按“0”键时立即计算字数和数字)?@Tsung TingKuo!有可能吗?@Konstantina Papagiannopoulou非常感谢!
while(s.hasNext())
{
if(s.hasNextInt())
{
if (s.nextInt() == 0) break;
numbers.add();
}
else
{
s.next();
words.add();
}
}