
生成不重复随机字符串包括字母数字 @param len @return /public static String generateRandomStr(int len) { //字符源,可以根据需要删减 String generateSource = "0123456789abcdefghigklmnopqrstuvwxyz"; String rtnStr = ""; for (int i = 0; i < len; i++) { //循环随机获得当次字符,并移走选出的字符 String nowStr = StringvalueOf(generateSourcecharAt((int) Mathfloor(Mathrandom() generateSourcelength()))); rtnStr += nowStr; generateSource = generateSourcereplaceAll(nowStr, ""); } return rtnStr;}public static void main(String[] args) { for (int i = 0; i < 10; i++) { Systemoutprintln(generateRandomStr(8)); }}
package >
package systemin;
import javaioIOException;
import javautilArrayList;
import javautilList;
public class CharReader {
public static void main(String[] args) throws IOException {
// 先设置26个英文字母
char[] allChar = new char[26];
for (int i = 97; i < 123; i++) {
allChar[i - 97] = (char) i;
}
// 存放已经取到的字符。为了方便使用list以及查找已经获取过的字符,因此使用list,目标是使用它的contains方法。
List<String> contentList = new ArrayList<String>();
int count = 5;
while (count > 0) {
// 取随机数,用以乘以26,得到[0,26)(大于等于零,小于26)的数字。
double numDouble = Mathrandom() 26;
// 用得到的结果除以1,可得到0-25一共26个数字中的任何一个。
int position = (int) numDouble / 1;
// 判断对应位置上面的字符是否已经被取到,如果取到则直接进入下一个循环,不做保存处理。
if (contentListcontains(StringvalueOf(allChar[position])))
continue;
// 如果之前没有被取到,则保存到结果集当中,并将计数数字减一。
contentListadd(StringvalueOf(allChar[position]));
count--;
}
// 获取到了指定数目的不同字符,循环输出
for (int i = 0; i < contentListsize(); i++)
Systemoutprintln(contentListget(i));
}
}
需要创建生成器的实例,我们可以使用RandomStringGeneratorBuilder()类build()方法。生成器类还可以帮助我们配置生成器的属性。在调用build()方法之前,我们可以使用以下方法设置构建器的属性:withinRange()指定在生成的字符串中允许的最小和最大代码点。filteredBy()将生成的字符串中的字符限制为与至少提供的谓词之一匹配的字符。这样即可将java定义一个以字母开头的随机字符串。
以上就是关于如何在JAVA中随机产生10位不可重复字串的方法全部的内容,包括:如何在JAVA中随机产生10位不可重复字串的方法、用java实现生成一随机字母(包括大小写),并输出、如何用java输出指定数目的随机不重复字母等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)