java随机生成中文

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Random;

public class ChineseUtils {
private static Random random = null;

private static Random getRandomInstance() {
if (random == null) {
random = new Random(new Date().getTime());
}
return random;
}

public static String getChinese() {
String str = null;
int highPos, lowPos;
Random random = getRandomInstance();
highPos = (176 + Math.abs(random.nextInt(39)));
lowPos = 161 + Math.abs(random.nextInt(93));
byte[] b = new byte[2];
b[0] = (new Integer(highPos)).byteValue();
b[1] = (new Integer(lowPos)).byteValue();
try {
str = new String(b, "GB2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}

public static String getFixedLengthChinese(int length) {
String str = "";
for (int i = length; i > 0; i--) {
str = str + ChineseUtils.getChinese();
}
return str;
}

public static String getRandomLengthChiness(int start, int end) {
String str = "";
int length = new Random().nextInt(end + 1);
if (length < start) {
str = getRandomLengthChiness(start, end);
} else {
for (int i = 0; i < length; i++) {
str = str + getChinese();
}
}
return str;
}

public static void main(String args[]) {
System.out.println(ChineseUtils.getChinese());
System.out.println(ChineseUtils.getFixedLengthChinese(20));
System.out.println(ChineseUtils.getRandomLengthChiness(2, 5));
}
}
### 使用Java编写程序随机生成中文姓名 为了实现这一功能,可以创建一个包含常见姓氏和名字的列表,并使用`Random`类来从中随机选择组合成完整的中文姓名。以下是具体实现方式: #### 创建姓氏与名字集合 定义两个数组分别存储常见的中国单字或多字姓以及常用的名字部分。 ```java String[] surnames = {"赵", "钱", "孙", "李", "周", "吴", "郑", "王"}; String[] names = {"伟", "芳", "娜", "敏", "静", "丽", "强", "磊", "军", "洋"}; ``` #### 实现随机选取逻辑 采用`java.util.Random`对象调用其nextInt方法获取指定范围内的整数值作为索引来访问上述数组中的元素。 ```java import java.util.Random; public class ChineseNameGenerator { private static final String[] SURNAMES = { "赵", "钱", "孙", "李", "周", "吴", "郑", "王" }; private static final String[] NAMES = { "伟", "芳", "娜", "敏", "静", "丽", "强", "磊", "军", "洋" }; public static void main(String[] args) { System.out.println(generateChineseName()); } /** * 生成随机中文姓名. */ public static String generateChineseName() { Random random = new Random(); int surnameIndex = random.nextInt(SURNAMES.length); int nameIndex1 = random.nextInt(NAMES.length); boolean hasTwoCharactersInFirstName = random.nextBoolean(); // 是否双字名 StringBuilder fullNameBuilder = new StringBuilder() .append(SURNAMES[surnameIndex]) .append(NAMES[nameIndex1]); if (hasTwoCharactersInFirstName) { int nameIndex2; do { nameIndex2 = random.nextInt(NAMES.length); } while(nameIndex2 == nameIndex1); // 确保第二个字符不同于第一个 fullNameBuilder.append(NAMES[nameIndex2]); } return fullNameBuilder.toString(); } } ``` 该段代码展示了如何构建一个简单的函数用于生成随机中文全名[^1]。通过调整`surnames`和`names`这两个静态字段的内容,还可以扩展至更广泛的取样空间以增加多样性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值