冒着听起来很愚蠢的风险,我走了:
有人可以告诉我如何验证是否通过扫描仪输入了字符串?
我在下面写了一些代码但是我被卡住了。 你可能会注意到,我是一个完整的新手。
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();
}
}
}
答案 0 :(得分:0)
顺便过去...... “有人可以告诉我如何验证字符串是否输入扫描仪?” 和你的评论...... “我打算在继续播放节目之前检查用户是否已提供输入”
如果您只是想检查用户是否提供了输入,那么您不需要做任何事情。这是因为Scanner.next()方法是一种阻塞方法。
来自APi文档...... “等待输入扫描时,此方法可能会阻塞。”
什么是阻止方法? Java中的阻塞方法是那些在执行操作完成之前停止执行线程的方法。
因此.next()方法通过阻止其余代码运行(阻塞)直到用户输入输入来为您处理此输入验证。
了解详情:http://javarevisited.blogspot.com/2012/02/what-is-blocking-methods-in-java-and.html#ixzz4TZjxJ8Ri
答案 1 :(得分:0)
在您的代码中
do {
System.out.print("Nieuwe klant? (j/n)");
reply = keyboard.findWithinHorizon(".", 0).charAt(0);
} while (reply != 'j' && reply != 'n');
虽然我不确定.findWithinHorizon(".",0)
是什么,但这是另一种读取字符的方法。
从这个
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');
会读一个字母。我希望这有帮助!