Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证用户输入的短语_Java_Validation_Input_Phrase - Fatal编程技术网

Java 验证用户输入的短语

Java 验证用户输入的短语,java,validation,input,phrase,Java,Validation,Input,Phrase,试图构建一个程序(Java),用户在其中键入其大小(例如大、小、L或S), 然后,它会使用一个sout(您选择的大小:小)(例如System.out.println(“您选择的大小:”+selectedSize))将它们的大小转发给它们 只是想知道是否有一种方法可以让它验证输入,这样它只接受短语“small”“large”“L”和“S” 我可以找到对int有效的验证器的帮助,但是如果没有对问题非常具体的话,就找不到对单词/短语有效的验证器 import java.util.Scanner; {

试图构建一个程序(Java),用户在其中键入其大小(例如大、小、L或S), 然后,它会使用一个sout(您选择的大小:小)(例如System.out.println(“您选择的大小:”+selectedSize))将它们的大小转发给它们

只是想知道是否有一种方法可以让它验证输入,这样它只接受短语“small”“large”“L”和“S”

我可以找到对int有效的验证器的帮助,但是如果没有对问题非常具体的话,就找不到对单词/短语有效的验证器

import java.util.Scanner;

{
    System.out.print("Enter Size:  ");

    Scanner size = new Scanner(System.in);

    String selectedsize = size.next();

    if (size.hasNext());
    {
    System.out.println("Size Selected is: " + name1);
    }
}
}


对于很多人来说,这可能是非常基本的,但谢谢你的建议!

对于控制台应用程序,我认为最简单的方法是检查用户键入的大小是否正确,如果没有,则循环

也许:

Scanner in = new Scanner(System.in);
while(true){
    String input = in.nextLine();
    switch(input.toLowerCase()) {
        case "small":
        case "s":
            chooseSmall();
            break;
        case "large":
        case "l":
            chooseLarge();
            break;
        case "q":
            System.out.println("Good bye!");
            System.exit(0);
        default:
            System.out.println("Incorrect option. Please try again.");
            continue;
    }
    break;
}

警告:未测试。switch语句中的字符串需要Java 7。

查看关键字
switch

它可以替换
if()
,还可以仔细查看
if()
行的末尾……那里有一些“奇怪”字符

此外,还应在变量
selectedsize
上执行if


希望这有帮助。

您也可以使用
ArrayList
执行类似于使用
开关的解决方案的操作。您添加到此
ArrayList
的任何内容都将是可接受的响应

public static void main(String[] args) {
    System.out.print("Enter Size:  ");

    Scanner size = new Scanner(System.in);

    String selectedsize = "";

    if (size.hasNext()) {
        selectedsize = size.next();
    }

    switch (selectedsize) {
    case "small":
    case "s":
        System.out.println("Size Selected is: " + selectedsize);
        break;
    case "large":
    case "l":
        System.out.println("Size Selected is: " + selectedsize);
        break;          
    default:
        System.out.println("exit");
        break;
    }

}
//Set up accepted responses
ArrayList<String> acceptedResponses = new ArrayList<>();
acceptedResponses.add("LARGE");
acceptedResponses.add("L");
acceptedResponses.add("SMALL");
acceptedResponses.add("S");

System.out.print("Enter Size:  ");
Scanner size = new Scanner(System.in);
String selectedsize = size.next();
if (acceptedResponses.contains(selectedsize.toUpperCase())){
    System.out.println("Size Selected is: " + selectedsize);
}else{
    System.out.println("Not a valid shirt size");
}
//设置接受的响应
ArrayList acceptedResponses=新的ArrayList();
接受响应。添加(“大”);
接受回复。添加(“L”);
接受响应。添加(“小”);
接受回复。添加(“S”);
系统输出打印(“输入大小:”);
扫描仪尺寸=新扫描仪(系统英寸);
字符串selectedsize=size.next();
if(acceptedResponses.contains(selectedsize.toUpperCase())){
System.out.println(“所选尺寸为:“+selectedsize”);
}否则{
System.out.println(“不是有效的衬衫尺寸”);
}

希望这有帮助。

尝试了如上所示的hasNext,但我只能使用Intsit的
nextLine进行字符串输入。它将等待用户按enter键,然后读取该行。