大概的要求是这样的:给出一个字符串长度,例如10,然后自动生成一个含有10个字符的字符串。做更细致要求的话,可能会要求自动生成的字符串全部为小写字母,自动生成的字符串全部为大写字母,自动生成的字符串为大小写字母的混合。在学习java的时候,我知道jdk有自动生成数字的方法,但不知道有没有能自动生成字符串的方法,望高人指教,在此先表示感谢。

解决方案 »

  1.   

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

  2.   

    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自动生成。
      
      
      

  3.   

    不晓得楼主有没有要求产生的是不重复的么,如果尽量不重复,自己实现会比较复杂,还是用uuid比较好。
    如果要求没那么高,楼主创建一个数组,放入所有的字母,然后随机产生0-46的数字,作为从数组里取得字符的索引,循环十次,拼接组成一个字符串,如果,要求多变,小写和大写字母分开两个数组,随机从两个数组取,
      

  4.   

    ACSII,随机生成65到90或97到122的整数。再转换成char连接.
      

  5.   

    你所说的自动生成数字的方法指的是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(); 
      

  6.   

    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);
        }
    }