本文目录一览:
- 1、java随机生成字符串
- 2、Java如何生成随机字符串
- 3、java中,我想随机获取不重复的字符串?应该怎么办?
- 4、java中如何产生一个16位数字组成的随机字符串?谢谢各位了
- 5、java实现输出指定长度的随机字符(大小写字母和数字)遇到问题?
- 6、java如何定义一个以字母开头的随机字符串
java随机生成字符串
代码如下:
import java.util.Random;
public class Demo {
public static void main(String args[]){
Demo demo = new Demo();
System.out.println(demo.getRandomString(20));
}
public static String getRandomString(int length) {
StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
StringBuffer sb = new StringBuffer();
Random random = new Random();
int range = buffer.length();
for (int i = 0; i length; i ++) {
sb.append(buffer.charAt(random.nextInt(range)));
}
return sb.toString();
}
}
代码解读:
调用getRandomString()方法时的length参数为要返回的随机字符串的长度。
StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
此段字符串代表要出现的字符还可以是其他字符
如:- + = * 。.等等
Java如何生成随机字符串
import java.util.Random;
public class Stat {
public static void main(String[] args) {
// Math.random() 获取0~1之间的double类型数值
int num = (int)(Math.random()*100); // 获取0~100之间的整数
System.out.println(num);
System.out.println(getRandomString(12));
}
// 获取随机字符串
public static String getRandomString(int length) { // length 字符串长度
StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
StringBuffer sb = new StringBuffer();
Random r = new Random();
int range = buffer.length();
for (int i = 0; i length; i ++) {
sb.append(buffer.charAt(r.nextInt(range)));
}
return sb.toString();
}
}
java中,我想随机获取不重复的字符串?应该怎么办?
1.先确定字符串的长度;
2.再确定字符串包括哪些字符;//这样可以确定字符的ASCII范围
3.然后就有很多方法去随机获取字符:
把字符存放在一个Map中的value中,如:map.put(1,"字符1");map.put(2,"字符2");
map.put(3,"字符3");一次类推,通过Math.random()*字符的个数,取整就可以得到key值,
map.get(key),value不为null,然后在map中删除这个key-value,可以设置map.put(key,null);
循环到字符串的长度为需要的长度。
具体一种方法的代码:
import java.util.HashMap;
import java.util.Map;
public class RandomStr {
public static void main(String[] args) {
for(int i=0; i 10; i++){//测试10次产生随机不重复字符串
generateRandomStr(5);
}
}
/**
* 产生不重复的随机字符串
* @param len 生成字符串的长度
* @return
*/
public static String generateRandomStr(int len){
String strRange = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//字符串范围,根据自己的需求确定
MapString, String tmp = new HashMapString, String();
for(int i=0; istrRange.length(); i++){
tmp.put(i+"",strRange.charAt(i)+"");
}
StringBuffer result=new StringBuffer();
for(int i=0; ilen; i++){
String key = (int)(Math.random()*(strRange.length()-i))+"";
result.append(tmp.get(key));
tmp.remove(key);
tmp.put(key, tmp.get((strRange.length()-i-1)+""));//拿最后一个字符填充删除的位置key-value
}
System.out.println(result);
return result.toString();
}
}
java中如何产生一个16位数字组成的随机字符串?谢谢各位了
方法如下:
Random ran=new random();
boolean flag=true;
while(flag){
int a=ran.nextInt(99999999);
int b=ran.nextInt(99999999);
long c=a*100000000L+b;
if(c1000000000000000Lc9999999999999999L){
flag=false;
c1=c;
String num=String.valueOf(c1);
}
}
Java生成随机字符串的两种方式:
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;ilength;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;ilength;i++){
int number=random.nextInt(3);
long result=0;
switch(number){
case 0:
result=Math.round(Math.random()*25+65);
sb.append(String.valueOf((char)result));
break;
case 1:
result=Math.round(Math.random()*25+97);
sb.append(String.valueOf((char)result));
break;
case 2:
sb.append(String.valueOf(new Random().nextInt(10)));
break;
}
}
return sb.toString();
}
java实现输出指定长度的随机字符(大小写字母和数字)遇到问题?
程序输出错误的原因(见图)
改正后的程序如下(见图,改动的地方见注释)
其实可以简化程序如下(见图)
java如何定义一个以字母开头的随机字符串
需要创建生成器的实例,我们可以使用RandomStringGenerator.Builder()类build()方法。生成器类还可以帮助我们配置生成器的属性。在调用build()方法之前,我们可以使用以下方法设置构建器的属性:withinRange()指定在生成的字符串中允许的最小和最大代码点。filteredBy()将生成的字符串中的字符限制为与至少提供的谓词之一匹配的字符。这样即可将java定义一个以字母开头的随机字符串。