java使用函数式接口完成判断键盘录入的数值是否是纯字母并且首字母是否是_
时间: 2024-05-04 07:16:41 浏览: 65
StuInf.rar_java 录入_stuinf
好的,针对您的问题,可以使用Java的函数式接口Predicate来完成判断。以下是示例代码:
```
import java.util.Scanner;
import java.util.function.Predicate;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串: ");
String str = sc.nextLine();
Predicate<String> checkInput = s -> s.matches("[a-zA-Z]+_?[a-zA-Z]*");
if (checkInput.test(str)) {
System.out.println("输入符合要求");
} else {
System.out.println("输入不符合要求");
}
}
}
```
以上代码中,使用了Lambda表达式创建了一个Predicate对象checkInput,它的test方法会返回一个布尔值,表示输入是否符合要求。具体的正则表达式解释如下:
- [a-zA-Z]+: 至少一个字母,大小写不限
- _?: 零个或一个下划线
- [a-zA-Z]*: 零个或多个字母,大小写不限
因此,整个正则表达式的意思是,至少一个字母,可以有一个下划线,后面可以有零个或多个字母。
阅读全文