如何验证是否给出了键盘输入

时间:2016-12-22 13:19:21

标签: 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[]) {
        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();
        }
    }
}

2 个答案:

答案 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 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');

会读一个字母。我希望这有帮助!