【问题标题】:Validate User Inputed Phrases Java验证用户输入短语 Java
【发布时间】:2015-10-21 17:07:43
【问题描述】:

尝试构建一个程序(Java),用户可以在其中输入他们的大小(例如,大、小、L 或 S), 然后,这会使用“You Selected Size: Small”(例如 System.out.println("You Selected Size: " + 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);
    }
}

}

对你们很多人来说可能很基础,但感谢您的任何建议!

【问题讨论】:

  • 试过 hasNext 如上所示,但我只能让它与 Ints 一起使用
  • nextLine 用于字符串输入。它会等待用户点击回车然后读取该行。

标签: java validation input phrase


【解决方案1】:

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

也许:

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。

【讨论】:

    【解决方案2】:

    看看关键字switch

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

    if 也应该在变量selectedsize...

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:
      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;
          }
      
      }
      

      【讨论】:

        【解决方案4】:

        您也可以使用ArrayList 执行与使用switch 的解决方案类似的操作。您添加到此ArrayList 的任何内容都将被接受。

        //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");
        }
        

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-15
          • 1970-01-01
          • 2014-06-04
          • 1970-01-01
          • 1970-01-01
          • 2017-09-11
          相关资源
          最近更新 更多