用Java帮我写一段代码:以 "i" 开头,后面跟着 3 到 17 个小写字母、大写字母或数字,最后以 "ll" 结尾
时间: 2023-07-19 10:41:12 浏览: 44
好的,请参考下面的Java代码实现:
```java
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String patternStr = "^i[a-zA-Z0-9]{3,17}ll$";
Pattern pattern = Pattern.compile(patternStr);
for (int i = 0; i < 10; i++) {
String str = generateRandomValidString();
System.out.println("Generated string: " + str);
Matcher matcher = pattern.matcher(str);
System.out.println("Matched: " + matcher.matches());
System.out.println();
}
}
public static String generateRandomString(int length) {
String source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++) {
int index = random.nextInt(source.length());
sb.append(source.charAt(index));
}
return sb.toString();
}
public static String generateRandomValidString() {
String prefix = "i";
String suffix = "ll";
String randomStr = generateRandomString(new Random().nextInt(15) + 3);
return prefix + randomStr + suffix;
}
}
```
这段代码中,我们首先定义了一个正则表达式,然后使用正则表达式对随机生成的字符串进行匹配,判断是否符合要求。我们使用 `generateRandomString` 方法生成指定长度的随机字符串,使用 `generateRandomValidString` 方法生成符合要求的随机字符串。最后,我们对随机生成的字符串进行匹配,输出匹配结果。