精华内容
下载资源
问答
  • Java生成16位不重复的随机字符
    千次阅读
    2021-03-09 21:08:38

    说明:项目中需要使用,记录一下!

    /**

    * 生成16位不重复的随机数,含数字+大小写

    * @return

    */

    private static String getGUID() {

    StringBuilder sb = new StringBuilder();

    //产生16位的强随机数

    Random rd = new SecureRandom();

    for (int i = 0; i < 16; i++) {

    //产生0-2的3位随机数

    int type = rd.nextInt(3);

    switch (type){

    case 0:

    //0-9的随机数

    sb.append(rd.nextInt(10));

    break;

    case 1:

    //ASCII在65-90之间为大写,获取大写随机

    sb.append((char)(rd.nextInt(25)+65));

    break;

    case 2:

    //ASCII在97-122之间为小写,获取小写随机

    sb.append((char)(rd.nextInt(25)+97));

    break;

    default:

    break;

    }

    }

    return sb.toString();

    }

    注意:本文归作者所有,未经作者允许,不得转载

    更多相关内容
  • java随机生成字符串,字符组合多样,可以大小字组合、大+小字符+数字等方式,大家参考使用吧
  • java生成字符画的工具类,支持自定义字符,自定义字体,自定义是否生成带颜色的字符画,链式调用,源代码都有注释。
  • 本篇文章主要介绍了java生成json字符串的方法,包括map对象转换成json对象,list转换成json,json转换成list和map,有兴趣的可以了解一下。
  • 主要介绍了Java 生成随机字符串数组的实例详解的相关资料,主要是利用Collections.sort()方法对泛型为String的List 进行排序,需要的朋友可以参考下
  • 主要介绍了java随机字符生成示例,这个字符随机生成类可以生成多种组合的字符串,比如大+小字符+数字+符号,需要的朋友可以参考下
  • Java生成字符

    千次阅读 2015-09-29 10:22:29
    ASCII码艺术是一种技术,它利用ASCII标准中的可打印字符来产生视觉艺术效果。在历史上它有其存在的目的,当时的打印机还无法打印图片,并且当时在邮件中嵌入图像还无法实现,所以它也用于邮件中。本文中,我将为你...

    ASCII码艺术是一种技术,它利用ASCII标准中的可打印字符来产生视觉艺术效果。在历史上它有其存在的目的,当时的打印机还无法打印图片,并且当时在邮件中嵌入图像还无法实现,所以它也用于邮件中。本文中,我将为你呈现一个非常简单的ASCII码艺术产生器,它由Java语言编写,并可以配置字体和对比度。因为该产生器是我在周末用几个小时创建的,所以它还不完美,但却是一个有趣的实验。在下面你可以看到实现代码,并且我将解释它的工作原理。

    算法

    这个算法很简单。首先,我们将ASCII码艺术品中要用到的每一个字符转化成一张图片,并缓存它。然后,我们遍历原始图像,对于每个字符大小的图片块,找出能最佳匹配它的字符。为了实现这一步,我们首先对原始图像做一些预处理:我们先将图像转换为灰度图,然后让其通过一个阈值滤波器,此时就得到了一个黑白对比图,我们可以将其与每个字符对比并计算差值。接着,对每个图片块选取最相似的字符,一直进行下去,直到整个图像都转换完成。此外,我们还可以根据需要调 整阈值大小来影响对比度,并增强最终的结果。

    为了实现这一点,一个非常简单的方法是将红、绿、蓝的值都设置成三种颜色的平均值:

    =绿=蓝 =(红+绿+蓝)/ 3

    如果这个值低于阈值,我们就将它设置成白色,否则我们将其设置成黑色。最后,我们将图像与每个字符以像素为单位进行比较并计算出平均误差。如下面的图片和代码片段所示:

    int r1 = (charPixel >> 16) & 0xFF;
    int g1 = (charPixel >> 8) & 0xFF;
    int b1 = charPixel & 0xFF;
    
    int r2 = (sourcePixel >> 16) & 0xFF;
    int g2 = (sourcePixel >> 8) & 0xFF;
    int b2 = sourcePixel & 0xFF;
    
    int thresholded = (r2 + g2 + b2) / 3 < THRESHOLD ? 0 : 255;
    
    error = Math.sqrt((r1 - thresholded) * (r1 - thresholded) + 
        (g1 - thresholded) * (g1 - thresholded) + (b1 - thresholded) * (b1 - thresholded));

    因为颜色是存储在单个整数中,所以我们首先提取单个颜色成分并执行上面我解释的计算。另一个挑战是准确地测量字符尺寸,并以它们为中心作图。在试验了多种方法之后,我最终发现这个方法已经足够好:

    Rectangle rect = new TextLayout(Character.toString((char) i), fm.getFont(), 
        fm.getFontRenderContext()).getOutline(null).getBounds();
    
    g.drawString(character, 0, (int) (rect.getHeight() - rect.getMaxY()));
    展开全文
  • 主要为大家详细介绍了java生成随机字符串的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了java生成随机数(字符串)示例分享,需要的朋友可以参考下
  • 主要为大家详细介绍了java随机生成时间字符串的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了java随机生成10位数字符串ID的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 1、生成字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random;//length用户要求产生字符串的长度public static String getRandomString(int length){String str=...

    1、生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random;

    //length用户要求产生字符串的长度

    public static String getRandomString(int length){

    String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

    Random random=new Random();

    StringBuffer sb=new StringBuffer();

    for(int i=0;i

    int number=random.nextInt(62);

    sb.append(str.charAt(number));

    }

    return sb.toString();

    }

    2、可以指定某个位置是a-z、A-Z或是0-9,需要导入的包是import java.util.Random;

    //可以指定字符串的某个位置是什么范围的值

    public static String getRandomString2(int length){

    Random random=new Random();

    StringBuffer sb=new StringBuffer();

    for(int i=0;i

    int number=random.nextInt(3);

    long result=0;

    switch(number){

    case 0:

    result=Math.round(Math.random()*25+65);

    展开全文
  • java唯一字符串ID生成方案详解

    千次阅读 2021-02-27 16:22:34
    工作中经常会有生成唯一字符串的需求。通常最容易想到的是UUID。UUID的唯一性毋庸置疑,但是32位的长度也容易让人退避三舍。也曾经想过参考《短网址生成方案》来生成一串ID,但是试验了一下发现唯一性不太好。最终...

    工作中经常会有生成唯一字符串的需求。通常最容易想到的是UUID。UUID的唯一性毋庸置疑,但是32位的长度也容易让人退避三舍。也曾经想过参考《短网址生成方案》来生成一串ID,但是试验了一下发现唯一性不太好。

    最终采用的方案是时钟方案,简单来说就是用当前时间戳做唯一ID。

    采用时间戳做ID,秒或毫秒都容易产生重复,换成纳秒在单节点上就没问题了。参考百度百科关于纳秒的描述就能清楚为什么纳秒级别的时间戳不会产生重复:

    光在真空中一纳秒仅传播0.3米。个人电脑的微处理器执行一道指令(如将两数相加)约需2至4纳秒。

    我们生成一条唯一ID所需的CPU指令绝不止一道,因此用纳秒作单机唯一ID是绰绰有余的。在测试中发现,即使是千分之一纳秒也足够我们在PC机上生成唯一ID了。

    至于长度:对原始值做一次Base62处理,长度就能缩减到令人满意的程度。

    不多废话,直接上代码:

    public static synchronized String gen() {

    StringBuilder builder = new StringBuilder(System.nanoTime() / 1000 + "");

    if (SEQ.incrementAndGet() % 10 == 0) {

    SEQ.incrementAndGet();

    }

    builder.append(FORMAT.format(SEQ.get()));

    if ((MAX_PAD_SIZE - 1) == SEQ.get()) {

    SEQ.set(1);

    }

    long v = Long.parseLong(builder.reverse().toString());

    return Base62.encode(v);

    }

    这里用千分之一纳秒做基数(经测试,基数在10w分之一纳秒内都是安全的),再加上1~99的顺序号来生成唯一ID。最终可以保证在大于10纳秒(近似)的时间区间内不会产生重复值。

    为了缩减长度,对字符串做了 Base62处理。在处理前又将纳秒数值做了一次翻转处理。不难想象,如果直接使用原始值来做Base62处理,因为时钟的特征,最终生成的值的前几位都是相同的。

    来看一下这个程序生成的ID:

    aSPog4cC

    d4t1xZdt

    g2tkZVqv

    jrinwXx5

    m8ZIAKVr

    oUB5nzS5

    rZa1gPAl

    uD12VZ3A

    8dnItkTj

    八位的长度,唯一且整齐。下面是一个单元测试:

    @Test

    public void gen() {

    int size = 10240;

    Set set = new HashSet<>();

    for (int i = 0; i < size; i++) {

    String code = ShortCode.gen();

    //System.out.println(code);

    set.add(code);

    }

    Assert.assertEquals(size, set.size());

    }

    这里只对10240的规模做了测试。因为唯一ID是基于时钟生成的,所以测试时整体规模的大小不影响ID的唯一性(和短链接方案不一样)。但是太小了也不行——顺序号会发挥作用。10240算是一个中庸的值,足够暴露问题,也不会有太多的冗余。

    仍然需要强调一下:这个方案只能保证在(当前)单机上的唯一性,如果是集群范围内建议采用其他方案,或者加上一两位机器ID。

    总结

    到此这篇关于java唯一字符串ID生成方案的文章就介绍到这了,更多相关java唯一字符串ID生成内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    展开全文
  • 主要为大家详细介绍了Java生成含字母和数字的6位随机字符串的相关资料,供大家参考,感兴趣的朋友可以参考一下
  • 随机生成一定长度的字符
  • Java随机字符生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
  • 随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串、数字。或者随即生成一个不定长度的数字、或者进行一个模拟的随机选择等等。Java提供了最基本的工具,可以帮助开发者来实现这一切
  • 主要介绍了Java生成MD5加密字符串代码实例,本文对MD5的作用作了一些介绍,然后给出了Java下生成MD5加密字符串的代码示例,需要的朋友可以参考下
  • 主要介绍了Java生成和解析XML格式文件和字符串的实例代码,需要的朋友可以参考下
  • 支持maven引入依赖生成二维码,自带工具类,支持生成二维码到本地,也可以转成base64字符串(前端轻松解析),写好了强大的工具类,总有一个适合你的。。。。。
  • Java根据正则表达式生成字符串,包括了Xeger和automaton
  • 主要介绍了Java实现简单字符生成器代码例子,本文直接给出实现代码,需要的朋友可以参考下
  • 主要介绍了Java实现产生随机字符串主键的UUID工具类,涉及java随机数与字符串遍历、转换等相关操作技巧,需要的朋友可以参考下
  • JAVA生成唯一字符

    2021-03-05 11:26:27
    在开发的过程有些地方会用到生成唯一的字符串的地方,例如生成唯一的订单编号。public class UniqueStringGenerator{private UniqueStringGenerator() {}public static synchronized String getUniqueString(){if...
  • 下面小编就为大家带来一篇java json不生成null或者空字符串属性(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java 生成随机字符

    万次阅读 2018-06-13 22:00:53
    java 生成随机字符串 本文我们介绍java中如何生成随机...java生成随机无限定字符串 首先简单生成7个字符的随机字符串: @Test public void givenUsingPlainJava_whenGeneratingRandomStringUnbounded_the...
  • java 二维码图片生成+图片转换字符图片。 效果: https://blog.csdn.net/qq_37902949/article/details/81228320 https://blog.csdn.net/qq_37902949/article/details/81228566

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 696,795
精华内容 278,718
关键字:

java生成字符

java 订阅