Java do-while 与多个字符串验证

标签 java string validation

尝试创建一个具有三个文本输入选项的简单程序。如果用户输入三者之一,程序就会继续。如果用户输入其他内容,程序将循环返回并再次要求输入,直到给出正确的响应。 使用下拉列表或其他方法是行不通的,因为这是一个作业。

 System.out.print("Enter one of the following: cheese, water, or burger: ");
        userMedium = user_input.nextLine( );  // store user input as a string
        mediumConvert = userMedium.toLowerCase();

        boolean verifyName;
        if (mediumConvert.equals("cheese") || mediumConvert.equals("water") || mediumConvert.equals("burger")){
            verifyName = false;
        } else {
            verifyName = true;
        }

        while (verifyName = true){
            System.out.println("Please input a valid medium (cheese, water, or burger): ");
            userMedium = user_input.nextLine( );
            mediumConvert = userMedium.toLowerCase();
        }

这是我到目前为止所设置的,但这只是不断重复循环。在本节之后,我想执行一个 switch 来处理三个正确响应中的每一个。

我在 google 和 YouTube 上花了最后一个小时,但我发现的所有内容都是使用整数。当用户输入只是一个数字和一个操作数时,验证用户输入似乎很容易。但是我如何使用三个可能的字符串?!

最佳答案

while (verifyName = true)
                  ↑

分配而不是比较。赋值表达式返回分配的值,因此您的循环相当于:

while (true)

您应该将其更改为:

while (verifyName)

基本上,您应该编写 while (verifyName == true),但它是多余的,因为它就像问“verifyName 的值为 true 是真的吗? ?”。它还可以防止潜在的错误,例如仅插入一个 = 而不是两个..

关于Java do-while 与多个字符串验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757133/

相关文章:

java - 使用 Java 中的 Calendar 类进行日期操作

java - 有没有办法在Win 7下将下划线设置为 native 外观中的助记符字符?

C++:哪个占用更多内存,将单个字符存储为 char 或 string?

python - 使用 Raptor 或 Sax 验证 RDF 文件

python - 在 Python 中验证 HTML/RDFa

java - Scribe OAuth Java Google 日历 api。无客户端库

java-simple-serial-connector (jssc) 丢弃缓冲区方法

c++ - 在 C++/FORTRAN 互操作中处理字符串的官方方法是什么

R按数字对字符串进行排序

java - Controller 或服务层中的 Spring MVC 验证?