package sorttest;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random; public class SortTest { public void sortString() {
List<String> stringList = new ArrayList<String>(); char[] charAndnum = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();
Random random = new Random(); //用于产生随机数
for (int j = 0; j < 10; j++) {
String string = new String();
do{
int sLength = random.nextInt(10); for(int i = 0;i<((sLength==0)?1:sLength);i++){
string+= charAndnum[random.nextInt(51)];
}
}while(stringList.contains(string));
stringList.add(string);
}
System.out.println("---------------排序前---------------");
for (String str : stringList) { System.out.println("生成的字符串为:"+str);
}
Collections.sort(stringList); System.out.println("---------------排序后---------------");
for (String str : stringList) { System.out.println("生成的字符串为:"+str);
}
} public static void main(String[] args) {
// TODO Auto-generated method stub
SortTest sTest = new SortTest();
sTest.sortString();
} }

  今天更新第二种实现方式:(更简短)

package oop;

import java.io.IOException;
import java.nio.CharBuffer;
import java.util.Random;
import java.util.Scanner; public class PassWrodsCreater implements Readable { private static Random random = new Random(47);
private static final char[] alls =
"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@#!$%*&/".toCharArray();
// 生成字密码的数量
private int count;
// 生成密码长度
private int length;
public PassWrodsCreater(int count,int length) {
this.count = count;
this.length = length;
}
@Override
public int read(CharBuffer cb) throws IOException {
if(count-- == 0)
return -1;
for(int i = 0; i < length; i++){
cb.append(alls[random.nextInt(alls.length)]);
}
cb.append(" ");
return 0;
} public static void main(String[] args) {
Scanner sc = new Scanner(new PassWrodsCreater(3,9));
while(sc.hasNext())
System.out.println(sc.next());
} }

  

Java实例练习——java实现自动生成长度为10以内的随机字符串(可用于生成随机密码)的更多相关文章

  1. [终章]进阶20-流程控制结构--if/case/while结构 - 三个while的存储过程案例(批量生成表单数据) - 随机长度的随机字符串的存储过程案例

    . mysql 存储过程中尽量使用 @变量 而不用局部变量, @变量不容易报错!权限小,更改一下就报错! . sql中判断相等'=' ,用'=' 不用'=='. . #流程控制结构 /* 顺序结构: ...

  2. Java - 35 Java 实例

    Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 Java 实例 – 如何编译一个Java 文件? Java 实 ...

  3. Java-Runoob-高级教程:Java 实例

    ylbtech-Java-Runoob-高级教程:Java 实例 1.返回顶部 1. Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. ...

  4. Java 实例

    Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 Java 实例 – 如何编译一个Java 文件? Java 实 ...

  5. Java-Runoob-高级教程-实例-方法:05. Java 实例 – 阶乘

    ylbtech-Java-Runoob-高级教程-实例-方法:05. Java 实例 – 阶乘 1.返回顶部 1. Java 实例 - 阶乘  Java 实例 一个正整数的阶乘(英语:factoria ...

  6. Java 8 到 Java 14,改变了哪些你写代码的方式?

    前几天,JDK 14 正式发布了,这次发布的新版本一共包含了16个新的特性. 其实,从Java8 到 Java14 ,真正的改变了程序员写代码的方式的特性并不多,我们这篇文章就来看一下都有哪些. La ...

  7. PHP 生成随机字符串与唯一字符串

    说明:生成随机字符串用到的方法有 mt_rand() 生成唯一字符串用到的方法有 md5(),uniqid(),microtime() 代码: <?php /* * 生成随机字符串 * @par ...

  8. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串

    openssl rand -hex n (n is number of characters) LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head ...

  9. PHP生成随机字符串与唯一字符串

    代码如下: <?php /* * 生成随机字符串 * @param int $length 生成随机字符串的长度 * @param string $char 组成随机字符串的字符串 * @ret ...

随机推荐

  1. git忽略文件和目录

    ******************************************************** http://jingxuan.io/progit/2-Git%E5%9F%BA%E7 ...

  2. Delphi Stringlist Delimiter如何区分TAB和空格

    var st: TStrings; begin st := TStringList.Create; st.StrictDelimiter := True;//这个多少人用过? st.Delimiter ...

  3. python-Django收集主机信息

    1.创建工程simplecmdb django-admin.py startproject simplecmdb 2.创建应用 cd simplecmdb python manage.py start ...

  4. 关于c++中的全局变量(不赋值的全局变量算定义)

    定义有三种: 1.不赋值的定义:int a; 2.赋值的定义:int a=5; 或者 int a;a=5; 3.加extern的定义:extern int a=5;//其实和不加是一样的. 声明只有一 ...

  5. 唐诗掠影:基于词移距离(Word Mover's Distance)的唐诗诗句匹配实践

    词移距离(Word Mover's Distance)是在词向量的基础上发展而来的用来衡量文档相似性的度量.   词移距离的具体介绍参考http://blog.csdn.net/qrlhl/artic ...

  6. xxx was built without full bitcode" 编译错误解决

    xxx was built without full bitcode" 编译错误解决 iOS 打包上线 All object files and libraries for bitcode ...

  7. 【leetcode刷题笔记】Integer to Roman

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  8. FFmpeg基础知识之————H264编码profile & level控制

    H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseline Profile:基本画质.支持I/P 帧,只支持无交错(Progressive)和 ...

  9. FFmpeg 的sws_getContext函数 、sws_scale函数

    FFmpeg里面的sws_scale库可以在一个函数里面同时实现:1.图像色彩空间转换:2.分辨率缩放:3.前后图像滤波处理. 其核心函数主要有三个: // 初始化sws_scalestruct Sw ...

  10. 关于对H264码流的TS的封装的相关代码实现

    1 写在开始之前 在前段时间有分享一个H264封装ps流到相关文章的,这次和大家分享下将H264封装成TS流到相关实现,其实也是工作工作需要.依照上篇一样,分段说明每个数据头的封装情况,当然,一样也会 ...