java - 随机不重复昵称怎么生成?
阿神
阿神 2017-04-17 17:46:14
[Java讨论组]

随机不重复昵称怎么生成?

阿神
阿神

闭关修行中......

全部回复(5)
伊谢尔伦
  1. HashSet 判断是否重复

  2. UUID 保证不重复

天蓬老师

可以随机中文再加随机英文字符串再加随机数字。再重复的话,后边数字顺序递增。

PHP中文网

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中文网

方案一,找个地方,抓个昵称库
方案二,找个中文词库,人工大至过下,两个词之间随机组合

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号