怎样生成一个随机字符串 比如,生成一个length为5的字符串"xxxxx",其中每个 x 是 0-9 或 A-F 范围内的一个十六进制的数字 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Map the random number to ASCII... 用一个Arraylist 把 1-9A-Z全包括进去.然后用random.nextInt();就行了. 每次挑一个拿出来用. import java.util.Arrays;import java.util.List;import java.util.Random;public class Test { public static void main(String args[]) { List<String> arrList = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); Random random = new Random(); for(int i=0 ; i<6; i++){ String s=arrList.get(random.nextInt(arrList.size())); System.out.print(s); } }}下面是运行了三次的结果..CKPJ2PTI7YS6D44DRB 还是用ascii码比较好,用ArrayList有点麻烦 Random rand = new Random();System.out.println( Integer.toHexString(0x100000 + rand.nextInt(0x100000)).substring(1).toUpperCase()); arraylist 比较好,灵活一些,可以控制具体的字符集 public class test1 { public String getRandomStr(int length) { String uuid = UUID.randomUUID().toString(); return uuid.substring((uuid.length()-length)<0?0:(uuid.length()-length)); } public static void main(String[] args) { test1 t = new test1 (); System.out.println(t.getRandomStr(5)); }}输出:2f5a7 N人,你写错了哦,明明他说的是0-9 or A-F.怎么你给整到A-Z呢?还有提醒这个NB人。你这个方法太垃圾了!!刚学JAVA的。有点像. N人,你写错了哦,明明他说的是0-9 or A-F.怎么你给整到A-Z呢?还有提醒这个NB人。你这个方法太垃圾了!!刚学JAVA的。有点像. 你牛比你写个 你也是刚学java吧 有病这人(3楼)<--,有什么好装的,大家都是来学习的。本人认为1楼的方法比较好,random number 也可以控制范围,效率也要高一些。就是ASCII对应于哪些数字自己要查查的,麻烦一点。 我就是刚学..您见谅.. 而且我眼神不好.. 看不到人家说的是 A-F. 还有啊. 我给楼主的例子还是 6位的.. lz要的是5位的..对不起啊..碍您眼了.. 我说人家说的方法没错 怎么了?LZ要A-F 2楼说A-Z那又怎么样 人家提供思路 关是不是A-Z什么事 你咬文嚼字个P啊 你N 你来写个N点的 让我们瞧瞧啊。 更简单的方法:随机生成一个整数(范围:0~FFFFF),然后转为16进制数,不够5位的补齐...尽管随机有点问题... 大家看看这种方法我有几个不明白的地方1.((uuid.length()-length)<0?0:(uuid.length()-length));当这个 随机生成的String uuid .length不足5位的时候,就substring(0);就是把整个字符串截取但是 它还是不不足5位呀如果uuid .length超过5位的时候,比如说7位,就substring(2), 的确是 把整个字符串截取后5位;可是如何保证它 随机生成的String uuid .length一定大于5呢???2.UUID.randomUUID()检索类型 4(伪随机生成的)UUID 的静态工厂这是什么意思? 如何用java获取ppt的翻页时间 java中设置字体的问题 菜鸟学java之求高手帮助 兼容性问题. Ecilpse3.2应该选择什么tomcat插件? 请教Socket.connect(SocketAddress endpoint, int timeout) 的问题 如何制作一个目录选取器 急啊 ????? 请教各位大侠一个小问题。 手写板输入 命令行下不能执行程序 问个线程的基本问题
然后用random.nextInt();就行了. 每次挑一个拿出来用.
import java.util.List;
import java.util.Random;public class Test { public static void main(String args[]) {
List<String> arrList = Arrays.asList("1", "2", "3", "4", "5", "6", "7",
"8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I",
"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",
"V", "W", "X", "Y", "Z");
Random random = new Random();
for(int i=0 ; i<6; i++){
String s=arrList.get(random.nextInt(arrList.size()));
System.out.print(s);
}
}
}下面是运行了三次的结果..CKPJ2P
TI7YS6D44DRB
System.out.println(
Integer.toHexString(0x100000 + rand.nextInt(0x100000)).substring(1).toUpperCase());
public class test1 {
public String getRandomStr(int length) {
String uuid = UUID.randomUUID().toString();
return uuid.substring((uuid.length()-length)<0?0:(uuid.length()-length));
}
public static void main(String[] args) {
test1 t = new test1 ();
System.out.println(t.getRandomStr(5));
}
}
输出:
2f5a7
你也是刚学java吧
有病这人(3楼)<--,有什么好装的,大家都是来学习的。本人认为1楼的方法比较好,random number 也可以控制范围,效率也要高一些。
就是ASCII对应于哪些数字自己要查查的,麻烦一点。
你N 你来写个N点的 让我们瞧瞧啊。
随机生成一个整数(范围:0~FFFFF),然后转为16进制数,不够5位的补齐...
尽管随机有点问题...
我有几个不明白的地方
1.((uuid.length()-length)<0?0:(uuid.length()-length));
当这个 随机生成的String uuid .length不足5位的时候,就substring(0);就是把整个字符串截取
但是 它还是不不足5位呀
如果uuid .length超过5位的时候,比如说7位,就substring(2), 的确是 把整个字符串截取后5位;可是如何保证它 随机生成的String uuid .length一定大于5呢???
2.
UUID.randomUUID()
检索类型 4(伪随机生成的)UUID 的静态工厂这是什么意思?