正则表达式数字、正则表达式字符串

  • 1:编写匹配数字的正则表达式,数字至少一位以上.
  • 2:匹配字符串,要求输入3-15位,内容只能是数字,字母,下划线
  • 完成下面编程题:
  • 程序启动后,要求用户输入用户名,用户名出现内容要求上述正则表达式2的要求.不匹配则直接
  • 提示用户名有误.
  • 如果无误,则要求用户继续输入年龄,规则为上述正则表达式1的要求,不匹配则提示年龄有误
  • 以上两个输入获取是都要求以字符串形式接受(Scanner的nextLine方法获取)
  • 最后验证年龄在1-100岁之间(包含1和100)

可以参考以下 ,这个代码

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String usernameReg = "^[0-9a-zA-Z_]{3,15}$";
    String ageReg = "^[0-9]+$";

    System.out.println("请输入用户名:");
    String username = sc.nextLine();
    Pattern pUsername = Pattern.compile(usernameReg);
    Matcher mUsername = pUsername.matcher(username);
    if (!mUsername.matches()) {
      System.out.println("用户名有误");
      return;
    }

    System.out.println("请输入年龄:");
    String age = sc.nextLine();
    Pattern pAge = Pattern.compile(ageReg);
    Matcher mAge = pAge.matcher(age);
    if (!mAge.matches()) {
      System.out.println("年龄有误");
      return;
    }

    int ageInt = Integer.parseInt(age);
    if (ageInt < 1 || ageInt > 100) {
      System.out.println("年龄有误");
      return;
    }

    System.out.println("用户名:" + username + ",年龄:" + ageInt);
  }
}


import java.util.Scanner;
import java.util.regex.Pattern;

public class InputValidation {
private static final String NAME_PATTERN = "^[a-zA-Z0-9_]{3,15}$";
private static final String AGE_PATTERN = "^[0-9]{1,}$";

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^