编写java程序完成如要需求。 (1)获取一个长度为6随机码,随机码的内容为数字和英文字母的组合。 (2)将随机码中的数字和英文字母拆分开,并分别存入 int []和 String []数组中。
时间: 2024-09-06 18:01:46 浏览: 69
为了实现这个需求,你可以使用Java的Random和StringBuilder类来生成随机码,然后使用正则表达式将其分割成数字和字母。以下是一个简单的示例:
```java
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RandomCodeSplitter {
public static void main(String[] args) {
// 获取一个长度为6的随机码
SecureRandom random = new SecureRandom();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 6; i++) {
char randomChar = getRandomAlphanumeric(random.nextInt(2)); // 生成数字或字母
sb.append(randomChar);
}
String randomCode = sb.toString();
// 将随机码拆分成数字和字母
List<Integer> digitList = new ArrayList<>();
List<String> alphaList = new ArrayList<>();
Pattern pattern = Pattern.compile("\\d|\\w"); // 匹配数字或字母
Matcher matcher = pattern.matcher(randomCode);
while (matcher.find()) {
String match = matcher.group();
if (match.matches("\\d")) { // 数字
digitList.add(Integer.parseInt(match));
} else { // 英文字符
alphaList.add(match);
}
}
// 打印结果
System.out.println("随机码: " + randomCode);
System.out.println("数字列表: " + digitList);
System.out.println("字母列表: " + alphaList);
}
private static char getRandomAlphanumeric(int type) {
SecureRandom random = new SecureRandom();
switch (type) {
case 0: return Character.forDigit(random.nextInt(10), 10); // 生成0-9的数字
case 1: return (char)(random.nextInt(26) + 'a'); // 生成小写字母 a-z
default: throw new IllegalArgumentException("Invalid type");
}
}
}
```
在这个程序中,我们首先生成了一个包含6个随机数字和字母的字符串。然后,我们使用正则表达式匹配数字和字母,并存储在两个不同的列表中。
阅读全文