java编程2.用for循环语句随机生成1000个11位数字,每一个11位数字用Math.random()函数的 表达式循环11次随机生成。然后用正则表达式判定这1000个11位数字中哪些是电话号码。
时间: 2024-03-10 12:49:52 浏览: 114
以下是一个Java程序,它使用for循环语句随机生成1000个11位数字,并使用正则表达式判定哪些是电话号码:
```
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneNumberGenerator {
public static void main(String[] args) {
String regex = "^(\\d{3,4}-)?\\d{7,8}$"; // 电话号码正则表达式
int count = 0; // 计数器,用于记录符合要求的电话号码个数
for (int i = 0; i < 1000; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < 11; j++) {
int digit = (int) (Math.random() * 10);
sb.append(digit);
}
String phoneNumber = sb.toString();
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()) {
System.out.println(phoneNumber + " 是电话号码");
count++;
} else {
System.out.println(phoneNumber + " 不是电话号码");
}
}
System.out.println("共生成了 1000 个数字,其中有 " + count + " 个是电话号码");
}
}
```
程序中使用了一个正则表达式来判定电话号码。该正则表达式允许以下两种格式的电话号码:
- 7位或8位数字,如 1234567 或 12345678
- 3位或4位区号 + 7位或8位数字,如 010-1234567 或 021-12345678
如果一个11位数字符合以上任意一种格式,就被认为是一个电话号码。程序在生成每个11位数字后,都会使用正则表达式来判定它是否是一个电话号码,如果是,就将计数器加1,并将该电话号码输出。最后,程序会输出共生成了多少个数字,其中有多少个是电话号码。
阅读全文