我正在用Java编程
我正在尝试编写代码,以识别用户是否在基于控制台的程序中按enter键。
我如何使用java做到这一点。有人告诉我,这可以使用Scanner或缓冲输入阅读器来完成。我不明白(或不知道如何使用)缓冲输入阅读器。
我试着用scanner来做这件事,但按了两次enter键后,程序终止,无法工作
Scanner readinput = new Scanner(System.in);
String enterkey = "Hola";
System.out.print(enterkey);
enterkey = readinput.nextLine();
System.out.print(enterkey);
if(enterkey == ""){
System.out.println("It works!");
谢啦
--编辑--以下代码使用字符串的equals
方法而不是==
Scanner readinput = new Scanner(System.in);
String enterkey = "Hola";
System.out.print(enterkey);
enterkey = readinput.nextLine();
System.out.print(enterkey);
if(enterkey.equals("")){
System.out.println("It works!");
如何做到这一点,使用缓冲输入读取器的好处是什么?
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
Double d = scan.nextDouble();
String newStr = "";
Scanner charScanner = new Scanner( System.in ).useDelimiter( "(\\b|\\B)" ) ;
while( charScanner.hasNext() ) {
String c = charScanner.next();
if (c.equalsIgnoreCase("\r")) {
break;
}
else {
newStr += c;
}
}
System.out.println("String: " + newStr);
System.out.println("Int: " + i);
System.out.println("Double: " + d);
此代码工作正常
这是使用java实现的。util。扫描器并将进行多次“回车”按键:
Scanner scanner = new Scanner(System.in);
String readString = scanner.nextLine();
while(readString!=null) {
System.out.println(readString);
if (readString.isEmpty()) {
System.out.println("Read Enter Key.");
}
if (scanner.hasNextLine()) {
readString = scanner.nextLine();
} else {
readString = null;
}
}
分解它:
Scanner scanner = new Scanner(System.in);
String readString = scanner.nextLine();
这些行初始化一个新的Scanner
,它从标准输入流(键盘)中读取并从中读取一行。
while(readString!=null) {
System.out.println(readString);
当扫描仪仍在返回非空数据时,将每一行打印到屏幕上。
if (readString.isEmpty()) {
System.out.println("Read Enter Key.");
}
如果输入提供了“输入”(或返回,或其他)键,nextLine()
方法将返回一个空字符串;通过检查字符串是否为空,我们可以确定该键是否被按下。这里打印了文本读取回车键,但您可以在这里执行任何您想要的操作。
if (scanner.hasNextLine()) {
readString = scanner.nextLine();
} else {
readString = null;
}
最后,在打印内容和/或按下“输入”键时做某事后,我们检查扫描仪是否有另一行;对于标准输入流,此方法将“阻塞”,直到流关闭、程序执行结束或提供进一步的输入。
问题内容: 我正在使用Java进行编程。 我正在尝试编写可识别用户是否在基于 控制台的程序中 按Enter键的代码 。 我如何使用Java做到这一点。有人告诉我,可以使用“扫描仪”或缓冲输入阅读器完成此操作。我不了解(或不知道如何使用)缓冲输入阅读器。 我尝试使用扫描仪执行此操作,但在按Enter键两次后,程序终止,并且不起作用 谢谢 -编辑-以下代码使用字符串方法代替 如何做到这一点?使用缓冲输
这个代码中的对象扫描仪有什么问题? 当我选择案例2时,我得到了这个错误: 我认为scanner首先声明为int,现在在切换之后,我用类型double收集答案。我不太确定,我需要更多地了解scanner类是如何工作的。
我正在创建一个小算法,这是其中的一部分。 如果用户输入非整数值,我想输出一条消息,让用户再次输入一个数字: 我得到了一个永无止境的循环,我不知道为什么。 如果用户输入非整数数字,我如何识别? 如果用户输入非整数数字,我如何要求用户再次输入? 更新 当我打印异常时,我得到了InputMismatchExctive,我应该怎么做?
我想从标准输入中读取一个双数,但是我总是得到这个异常: Java . util . inputmismatchexception 如果输入是整数,那没问题,但是如果是双精度的,我会得到异常。 线程“main”Java . util . inputmismatchexception Java . util . scanner . throw for(scanner . Java:864)Java .
问题内容: 如何将扫描仪的定界符设置为;或换行? 我试过: 但这不起作用。 问题答案: 通常,在模式中,您需要将翻倍。 所以,尝试 要么 编辑 :如果是问题,则可能要尝试以下操作: 它匹配的一个或多个,和。 注意 :我还没有尝试过这些。
问题内容: 我有一个创建多个对象并将其放入一个类的类,如下所示: 我有一个从控制台扫描输入“ add”的应用程序,如果找到该应用程序,则调用如下所示的方法: 该应用程序应允许用户根据需要多次输入“添加”,但是在add调用该方法后将出现错误“找不到行” 。 我猜这是因为方法中的尚未关闭,然后在需要时重新打开。这是程序的问题吗?如果是,我将如何修复它? 请注意,该程序尚未完成,因为我将添加一种出售这些