Java 如何验证是否提供了键盘输入
冒着听起来很傻的风险,我来了: 有人能告诉我如何验证是否通过扫描仪输入了字符串吗 我在下面写了一些代码,但我被卡住了。 你可能会注意到,我完全是个新手Java 如何验证是否提供了键盘输入,java,eclipse,Java,Eclipse,冒着听起来很傻的风险,我来了: 有人能告诉我如何验证是否通过扫描仪输入了字符串吗 我在下面写了一些代码,但我被卡住了。 你可能会注意到,我完全是个新手 import static java.lang.System.in; import static java.lang.System.out; import java.util.Scanner; public class Test { public static void main(String args[]) {
import static java.lang.System.in;
import static java.lang.System.out;
import java.util.Scanner;
public class Test {
public static void main(String args[]) {
Scanner keyboard = new Scanner(in);
char reply;
do {
System.out.print("Nieuwe klant? (j/n)");
reply = keyboard.findWithinHorizon(".", 0).charAt(0);
} while (reply != 'j' && reply != 'n');
String giveFirstName;
String giveLastName;
String giveStreet;
String giveNumber;
String giveCity;
String giveLand;
String giveMail;
String giveGsm;
String enterLastName;
String enterFirstName;
if (reply == 'j') {
System.out.print("Voornaam Klant: ");
giveFirstName = keyboard.next();
System.out.print("Achternaam Klant: ");
giveLastName = keyboard.next();
System.out.print("Straatnaam: ");
giveStreet = keyboard.next();
System.out.print("nummer: ");
giveNumber = keyboard.next();
System.out.print("Stad: ");
giveCity = keyboard.next();
System.out.print("Land: ");
giveLand = keyboard.next();
System.out.print("E-mail adress: ");
giveMail = keyboard.next();
System.out.print("Gsm-nummer: ");
giveGsm = keyboard.next();
} else {
out.print("Voornaam bestaande klant:");
enterFirstName = keyboard.next();
System.out.print("Achternaam bestaande klant:");
enterLastName = keyboard.next();
}
}
}
好吧,通过这个。。。
“有人能告诉我如何验证扫描仪输入的字符串是否为真吗?”
还有你的评论。。。
“我打算在继续程序之前检查用户是否提供了输入”
如果您只是想检查用户是否提供了输入,则无需执行任何操作。这是因为Scanner.next()方法是一个阻塞方法
从APi文档中。。。
“此方法在等待输入扫描时可能会阻塞。”
什么是阻塞方法?
Java中的阻塞方法是那些在操作完成之前停止执行线程的方法
因此,.next()方法通过在用户输入输入之前停止运行(阻塞)其余代码来为您处理此输入验证
阅读更多信息:在您的代码中
do {
System.out.print("Nieuwe klant? (j/n)");
reply = keyboard.findWithinHorizon(".", 0).charAt(0);
} while (reply != 'j' && reply != 'n');
虽然我不确定.findWithinHorizon(“.”,0)
是什么,但这里有另一种读取字符的方法。
从此更改do while循环
do {
System.out.print("Nieuwe klant? (j/n)");
reply = keyboard.findWithinHorizon(".", 0).charAt(0);
} while (reply != 'j' && reply != 'n');
对此
do {
String input;
System.out.print("Nieuwe klant? (j/n)");
input = keyboard.next(); //Gets next String
reply=input.charAt(0); //Sets String input to char reply
} while (reply != 'j' && reply != 'n');
将读取一个字符。我希望这有帮助 “验证是否输入了
字符串”是什么意思?只要用户不输入任何内容,扫描器就不会返回任何内容,如果这是您的意思的话。验证是代码实际上继续执行某些操作,因为scanner\#next()
会等待输入(但如果提供的值超过1个,并且被下一个标记标识为空白,则不会出现这种情况。Input1 Input2
)。好吧,paul,我打算在我继续程序之前检查用户是否输入了。Yeah@paul是对的。用户不能跳过,除非通过扫描仪输入内容。