如何解决如何生成一个由20个字符组成的随机字符串[重复]
| 这个问题已经在这里有了答案:解决方法
干得好。只需在第一行中指定要允许的字符。
char[] chars = \"abcdefghijklmnopqrstuvwxyz\".toCharArray();
StringBuilder sb = new StringBuilder(20);
Random random = new Random();
for (int i = 0; i < 20; i++) {
char c = chars[random.nextInt(chars.length)];
sb.append(c);
}
String output = sb.toString();
System.out.println(output);
,我会使用这种方法:
String randomString(final int length) {
Random r = new Random(); // perhaps make it a class variable so you don\'t make a new one every time
StringBuilder sb = new StringBuilder();
for(int i = 0; i < length; i++) {
char c = (char)(r.nextInt((int)(Character.MAX_VALUE)));
sb.append(c);
}
return sb.toString();
}
如果您想要一个byte [],可以这样做:
byte[] randomByteString(final int length) {
Random r = new Random();
byte[] result = new byte[length];
for(int i = 0; i < length; i++) {
result[i] = r.nextByte();
}
return result;
}
或者你可以这样做
byte[] randomByteString(final int length) {
Random r = new Random();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < length; i++) {
char c = (char)(r.nextInt((int)(Character.MAX_VALUE)));
sb.append(c);
}
return sb.toString().getBytes();
}
,您可以将类java.util.Random与方法一起使用
char c = (char)(rnd.nextInt(128-32))+32
20x获得字节,您将其解释为ASCII。如果您对ASCII没问题。
32是通常可打印字符的偏移量。
,public String randomString(String chars,int length) {
Random rand = new Random();
StringBuilder buf = new StringBuilder();
for (int i=0; i<length; i++) {
buf.append(chars.charAt(rand.nextInt(chars.length())));
}
return buf.toString();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。