繁体   English   中英

在 Java 中使用 Scanner 接受空字符串或长度为 0 的字符串作为输入

[英]Accept empty string or string with length of 0 as input using Scanner in Java

我使用 Java 中的 Scanner 来获取用户条目,例如姓名、电子邮件和电话。 姓名和姓氏是必需的,但电子邮件和电话不是必需的,用户只需按回车键即可将它们留空。

我想要做的是添加一个方法,该方法将验证条目是否为空或长度为 0,如果是这种情况,当用户点击输入时,扫描仪将接受空字符串作为有效值。

这是我用来验证每个条目的长度并在长度小于或大于最小值或最大值时显示错误消息的方法。

public static String validateString (String msgSoll, String msgErr, 
               int lngMin, int lngMax) {
          String myString = null;
          
          if (lngMin >= 0 && lngMax >= lngMin) {
             do {
                System.out.print(msgSoll);
                myString = myScanner.nextLine();
                if (myString.length() < lngMin || myString.length() > lngMax) {
                   System.out.println(msgErr);
                }
             } while (myString.length() < lngMin || myString.length() > lngMax);
          }
          return myString;
       }

如果有人能用这种方法帮助我,我将不胜感激。

谢谢

您可以使用String#isBlank (可从 Java-11 获得)来测试输入。

import java.util.Scanner;

public class Main {
    static Scanner myScanner = new Scanner(System.in);

    public static void main(String[] args) {
        // Test
        System.out.println("Your name: " + validateString("Enter your name: "));
    }

    public static String validateString(String message) {
        String input = "";
        do {
            System.out.print(message);
            input = myScanner.nextLine();
            if (input.isBlank()) {
                System.out.println("It's an empty string.");
            }
        } while (input.isBlank());
        return input;
    }
}

示例运行:

Enter your name: 
It's an empty string.
Enter your name: 
It's an empty string.
Enter your name: Hello
Your name: Hello

注意:如果您的 Java 版本低于11 ,您可以使用if (input.isEmpty() || input.trim().length() == 0)作为条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM