扫码关注官方订阅号
随机不重复昵称怎么生成?
闭关修行中......
HashSet 判断是否重复
UUID 保证不重复
可以随机中文再加随机英文字符串再加随机数字。再重复的话,后边数字顺序递增。
package test;
import java.io.UnsupportedEncodingException;import java.util.HashSet;import java.util.Iterator;import java.util.Random;public class RandomChinese {
public static void main(String args[]) { HashSet<String> set = new HashSet<String>(); for (int i = 0; i < 100; i++) { String chineseName = getRandomJianHan(3); if (!set.contains(chineseName)) { set.add(chineseName); } } Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { System.err.print(iterator.next() + "\n"); } } public static String getRandomJianHan(int len) { String ret = ""; for (int i = 0; i < len; i++) { String str = null; int hightPos, lowPos; // 定义高低位 Random random = new Random(); hightPos = (176 + Math.abs(random.nextInt(39))); // 获取高位值 lowPos = (161 + Math.abs(random.nextInt(93))); // 获取低位值 byte[] b = new byte[2]; b[0] = (new Integer(hightPos).byteValue()); b[1] = (new Integer(lowPos).byteValue()); try { str = new String(b, "GBK"); // 转成中文 } catch (UnsupportedEncodingException ex) { ex.printStackTrace(); } ret += str; } return ret; }
}
/** * 生成交易号 */ public function generatePaymentId() { $i = rand(0, 9999); do { if (9999 == $i) { $i = 0; } $i++; $id = time() . str_pad($i, 4, '0', STR_PAD_LEFT); $row = (new Query())->from(self::tableName())->where(['id' => $id])->exists(); } while ($row); return $id; }
楼上的代码我就不评价了
方案一,找个地方,抓个昵称库方案二,找个中文词库,人工大至过下,两个词之间随机组合
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
HashSet 判断是否重复
UUID 保证不重复
可以随机中文再加随机英文字符串再加随机数字。再重复的话,后边数字顺序递增。
package test;
import java.io.UnsupportedEncodingException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
public class RandomChinese {
}
楼上的代码我就不评价了
方案一,找个地方,抓个昵称库
方案二,找个中文词库,人工大至过下,两个词之间随机组合