[求教]如何使用jdk自动生成一个字符串

cn_yangliguo 2008-04-15 03:22:55
大概的要求是这样的:

给出一个字符串长度,例如10,然后自动生成一个含有10个字符的字符串。做更细致要求的话,可能会要求自动生成的字符串全部为小写字母,自动生成的字符串全部为大写字母,自动生成的字符串为大小写字母的混合。

在学习java的时候,我知道jdk有自动生成数字的方法,但不知道有没有能自动生成字符串的方法,望高人指教,在此先表示感谢。
...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeff712 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 q1531 的回复:]
ACSII,随机生成65到90或97到122的整数。再转换成char连接.
[/Quote]

这个就行了,简单实用。
aniude 2008-04-15
  • 打赏
  • 举报
回复
public class RandomTester {
public static void main(String[] args) {
char[] output = new char[10];
Random rand = new Random();
for (int i = 0; i < output.length; i++) {
int number = rand.nextInt(26);
output[i] = (char) ((number % 2 == 0 ? 'a' : 'A') + number);
}

System.out.println(output);
}
}
anqini 2008-04-15
  • 打赏
  • 举报
回复
你所说的自动生成数字的方法指的是random()对吧,跟他相对应的自动生成字符的方法是没有的,想要实现的话如下:


StringBuilder sb = new StringBuilder();
Random rand = new Random();
for (int i = 0;i < 10;++i)
sb.append(((char) ('a' + rand.nextInt(26))));
String s = sb.toString();


要用大写字符的话,如下

StringBuilder sb = new StringBuilder();
Random rand = new Random();
for (int i = 0;i < 10;++i)
sb.append(((char) ('A' + rand.nextInt(26))));
String s = sb.toString();


q1531 2008-04-15
  • 打赏
  • 举报
回复
ACSII,随机生成65到90或97到122的整数。再转换成char连接.
xukai_286 2008-04-15
  • 打赏
  • 举报
回复
不晓得楼主有没有要求产生的是不重复的么,如果尽量不重复,自己实现会比较复杂,还是用uuid比较好。
如果要求没那么高,楼主创建一个数组,放入所有的字母,然后随机产生0-46的数字,作为从数组里取得字符的索引,循环十次,拼接组成一个字符串,如果,要求多变,小写和大写字母分开两个数组,随机从两个数组取,
aipb2008 2008-04-15
  • 打赏
  • 举报
回复
StringBuilder sb = new StringBuilder();
Random rand = new Random();
for (int i = 0;i < 10;++i)
sb.append('a'+rand.nextInt(26));
String s = sb.toString();

不懂什么是JDK自动生成。

forestking_xx 2008-04-15
  • 打赏
  • 举报
回复
自己做个检索表好了,比如a【52】 = a, b, 。。。z,A 。。。。 Z;
然后生成52以内的随机数,比如2, 那么得到b,
依次类推。
好像可以做到你说的要求。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧