import java.util.Scanner; import java.util.regex.Matcher; public class Yanzheng { public static void main(String[] args){ Scanner s = new Scanner(System.in); String pwd = s.nextLine();//接收空的字符串 Matcher matcher; matcher = pwd.matcher(); if(pwd == null ){ System.out.print("验证失败:用户名不能为空。"); } else if (pwd.length() <= 6) { System.out.print("验证失败:长度需要大于6。"); }else if (matcher.find()){ System.out.println("验证失败:包含数字。"); }else { System.out.println("验证成功!"); } } }怎么修改
时间: 2024-01-06 09:06:28 浏览: 73
这段代码有几个问题,首先是 `pwd` 没有被正确地初始化为一个 `Matcher` 对象,其次是在判断是否包含数字时,应该使用正则表达式来匹配数字。
下面是修改后的代码:
```
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Yanzheng {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
String pwd = s.nextLine();//接收空的字符串
Pattern pattern = Pattern.compile("\\d"); // 匹配数字的正则表达式
Matcher matcher = pattern.matcher(pwd);
if(pwd.isEmpty()){
System.out.print("验证失败:用户名不能为空。");
} else if (pwd.length() <= 6) {
System.out.print("验证失败:长度需要大于6。");
}else if (matcher.find()){
System.out.println("验证失败:包含数字。");
}else {
System.out.println("验证成功!");
}
}
}
```
这里使用了 `Pattern` 类来创建一个匹配数字的正则表达式,然后再使用 `Matcher` 类来进行匹配。同时也对判断空字符串的部分进行了修改,使用了 `isEmpty()` 方法来进行判断。
阅读全文