Java,编写程序,提示用户输入一个字符串,要求该字符串包括中文,大小写英文,数字和一个特殊字符。输出显示它的长度,第一个字符和最后一个字符
时间: 2024-11-04 22:11:06 浏览: 14
在Java中,你可以使用Scanner类从用户处获取输入,并通过正则表达式检查输入是否满足指定的要求。下面是一个简单的示例程序:
```java
import java.util.Scanner;
import java.util.regex.Pattern;
public class InputValidation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个包含中文、大小写字母、数字和特殊字符的字符串:");
String userInput = scanner.nextLine();
// 检查输入是否符合要求
Pattern pattern = Pattern.compile("^(?=.*\\p{IsChinese})(?=.*[a-zA-Z])(?=.*\\d)(?=.*[@!#$%^&*()])[a-zA-Z0-9\\p{IsChinese}!@#$%^&*()]*$");
if (pattern.matcher(userInput).matches()) {
int length = userInput.length();
char firstChar = userInput.charAt(0);
char lastChar = userInput.charAt(userInput.length() - 1);
System.out.println("字符串长度: " + length);
System.out.println("第一个字符: " + firstChar);
System.out.println("最后一个字符: " + lastChar);
} else {
System.out.println("输入不符合要求,请重新输入!");
}
}
}
```
在这个例子中,`^.*\p{IsChinese}`用于匹配中文字符,`(?=.*[a-zA-Z])`用于匹配至少有一个字母,`(?=.*\d)`用于匹配至少有一个数字,`(?=.*[@!#$%^&*()])`用于匹配至少有一个特殊字符。如果输入符合条件,就会打印出字符串长度、第一个字符和最后一个字符;如果不满足条件,则会提示用户重新输入。
阅读全文