search

Home  >  Q&A  >  body text

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

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

阿神阿神2770 days ago953

reply all(5)I'll reply

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:48:14

    1. HashSet determines whether it is duplicated

    2. UUID guaranteed not to be repeated

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:48:14

    You can add random Chinese characters, random English strings, and random numbers. If repeated, the following numbers will increase in sequence.

    reply
    0
  • PHP中文网

    PHP中文网2017-04-17 17:48:14

    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;
    }

    }

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:48:14

    /**
         * 生成交易号
         */
        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;
        }

    I won’t comment on the code above

    reply
    0
  • PHP中文网

    PHP中文网2017-04-17 17:48:14

    Plan 1, find a place, grab a nickname library
    Plan 2, find a Chinese vocabulary library, artificially large to low, random combination between the two words

    reply
    0
  • Cancelreply