java - 如何将字符串格式化为强加格式?

标签 java string

我有一个作业需要输入验证。 如何格式化字符串以仅接受一种格式类型,例如:AA-1234?

private void validate() {

    Scanner in = new Scanner(System.in);
    System.out.println("Enter the first name:");
    String firstName = in.next();
    System.out.println("Enter the last name:");
    String lastName = in.next();
    System.out.println("Enter the ZIP code");
    String zipCode = in.next();
    System.out.println("Enter the employee ID ");
    String employeeID = in.next();

    if (firstName.length() < 2 | !firstName.matches("[a-zA-z]+")) {
        System.out.println("'" + firstName + "' is not a valid name.Is too short.");
    }
    if (lastName.length() < 2 | !lastName.matches("[a-zA-z]+")) {
        System.out.println("'" + lastName + "' is not a valid name.Is too short.");
    }
    if (!zipCode.matches("[0-9]+")){
        System.out.println("The ZIP code must be numeric.");
    }
    if (!employeeID.matches("%d%d%c%c%c")){
        System.out.println(employeeID +" is not a valid ID format.");
        System.out.println("The ID format should be AA-1234(LetterLetter-NumberNumberNumberNumber)");
    }


}

所以我希望我的方法只接受格式为 AA-1234 的 ID 值,如果格式不同,则打印一条消息,告诉您“您的 ID 格式无效”

最佳答案

使用正则表达式。两个“A-Z”,一个破折号,然后是四位数字。比如,

if (!employeeID.matches("[A-Z]{2}-\\d{4}")){
    System.out.println(employeeID +" is not a valid ID format.");
    System.out.println("The ID format should be AA-1234(LetterLetter-NumberNumberNumberNumber)");
}

关于java - 如何将字符串格式化为强加格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56911601/

相关文章:

Java - 如何正确处理 try catch block

java - 你为什么要实现 finalize()?

java - 无法使用 Apache Commons CSV 读取 CSV 文件 - IllegalArgumentException

java - 如何在 Apache POI 3.7 版本以上的工作簿、工作表和 HSSF 类的单元格中设置字符编码?

java - Android奇怪的ComponentInfo NullPointerException

java - 如何检查数组是否有足够的位置来接受 Java 中数组的新值?

C 如何将命令传递的字符串转换为数组

Java 通过带问号的换行符正则表达式拆分字符串

c - 如何正确传递单个字符作为对 C 中另一个方法的引用

Java如何使用Hashset在读取文件时添加带句点的字符串