Java 范围为(a..Z,0..9)和标点符号的随机字符生成器

Java 范围为(a..Z,0..9)和标点符号的随机字符生成器,java,android,random,Java,Android,Random,我需要创建一个随机字符生成器,返回单个字符。字符的范围应在字母表的字母、数字0到9以及一些字符(如.?/-)之间。任何例子都将不胜感激 在[0,x]之间选择一个随机数,其中x是不同符号的数量。希望选择是一致的,并且不可预测:-) 现在选择代表x的符号 利润 我将开始阅读,然后是一些常见的。当然,希望您的语言已经有了一个合适的“随机”函数:-)使用一些简单的命令行(bash脚本): cat/dev/uradom:从内核获取一个随机的字符流 tr:只保留我们想要的字符 头:只取第一个n字符 xar

我需要创建一个随机字符生成器,返回单个字符。字符的范围应在字母表的字母、数字0到9以及一些字符(如.?/-)之间。任何例子都将不胜感激

  • 在[0,x]之间选择一个随机数,其中x是不同符号的数量。希望选择是一致的,并且不可预测:-)

  • 现在选择代表x的符号

  • 利润


  • 我将开始阅读,然后是一些常见的。当然,希望您的语言已经有了一个合适的“随机”函数:-)

    使用一些简单的命令行(bash脚本):

    • cat/dev/uradom:从内核获取一个随机的字符流
    • tr:只保留我们想要的字符
    • 头:只取第一个
      n
      字符
    • xargs:仅用于添加
      '\n'
      字符

      • 最简单的方法是执行以下操作:

        • 创建一个带有所需字符的
          字符串字母表
        • N=alphabet.length()
        • 然后我们可以问一个问题
        • 字母表。字符(x)
          是字母表中的随机字符
        下面是一个例子:

            final String alphabet = "0123456789ABCDE";
            final int N = alphabet.length();
        
            Random r = new Random();
        
            for (int i = 0; i < 50; i++) {
                System.out.print(alphabet.charAt(r.nextInt(N)));
            }
        
        final String alphabet=“0123456789ABCDE”;
        final int N=字母表长度();
        随机r=新随机();
        对于(int i=0;i<50;i++){
        系统输出打印(字母表字符(r.nextInt(N));
        }
        
        以下是安全、简单但稍微昂贵的会话标识符代码

        import java.security.SecureRandom;
        import java.math.BigInteger;
        
        public final class SessionIdentifierGenerator
        {
        
          private SecureRandom random = new SecureRandom();
        
          public String nextSessionId()
          {
            return new BigInteger(130, random).toString(32);
          }
        
        }
        

        为什么要重新发明轮子?来自Apache Commons的RandomStringUtils具有一些函数,您可以指定从中生成字符的字符集。您可以将所需的内容添加到应用程序中:

        请参见以下链接:

        现在您可以在调用时一次生成一个角色

        Random random = new Random();
        int n = random.nextInt(69) + 32;
        if (n > 96) {
            n += 26;
        }
        char c = (char) n;
        

        我想这取决于你想包含哪个标点符号,但这应该会生成一个随机字符,包括这个ASCII表上的所有标点符号。基本上,我已经从32-96或123-126生成了一个随机整数,然后我将其转换为一个字符,这就给出了该数字的ASCII等价物。另外,请确保
        import java.util.Random

        您应该首先创建一个字符串,其中包含您想要的所有字母/数字。
        然后,做一个随机的。例如,
        Random rnd=new Random;

        最后,从包含字母表的字符串中生成一个随机字符。
        比如说,

        import java.util.Random;
        
        public class randomCharacter {
            public static void main(String[] args) {
                String alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/.,";
                Random rnd = new Random();
                char char = alphabet.charAt(rnd.nextInt(alphabet.length()));
                // do whatever you want with the character
            }
        }
        
        请参阅。
        我就是从这里得到这些信息的。

        随机字符 包装公司

                 import java.util.concurrent.ThreadLocalRandom;
        
                 public class Main {
        
                    public static void main(String[] args) {
                    // write your code here
                        char hurufBesar =randomSeriesForThreeCharacter(65,90);
                        char angka = randomSeriesForThreeCharacter(48,57);
                        char simbol = randomSeriesForThreeCharacter(33,47);
                        char hurufKecil= randomSeriesForThreeCharacter(97,122);
                        char angkaLagi = randomSeriesForThreeCharacter(48,57);
        
                        System.out.println(hurufBesar+" "+angka+" "+simbol+" "+hurufKecil+" "+angkaLagi);
                    }
        
                    public static char randomSeriesForThreeCharacter(int min,int max) {
                        int randomNumber = ThreadLocalRandom.current().nextInt(min, max + 1);
                        char random_3_Char = (char) (randomNumber);
                        return random_3_Char;
                     }
                 }
        

        首先,你认为你会使用什么语言?第二,请给出你的最佳猜测,说明你是如何做到这一点的。这不是“为我做作业”。在结束之前,给你的标签添加一种语言。用什么编程语言?谢谢你直截了当的回答。语言是Java。我正在使用Android SDK。我将生成数字,并获取每个字符的数字的ASCII值。我不需要做家庭作业。我67岁,编程时间可能比你长e一直活着。在你的问题中添加标签。+1用于使用合理的步骤->步骤->利润!!!面对此类问题时的方案。
        import java.util.Random;
        
        public class randomCharacter {
            public static void main(String[] args) {
                String alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ?/.,";
                Random rnd = new Random();
                char char = alphabet.charAt(rnd.nextInt(alphabet.length()));
                // do whatever you want with the character
            }
        }
        
                 import java.util.concurrent.ThreadLocalRandom;
        
                 public class Main {
        
                    public static void main(String[] args) {
                    // write your code here
                        char hurufBesar =randomSeriesForThreeCharacter(65,90);
                        char angka = randomSeriesForThreeCharacter(48,57);
                        char simbol = randomSeriesForThreeCharacter(33,47);
                        char hurufKecil= randomSeriesForThreeCharacter(97,122);
                        char angkaLagi = randomSeriesForThreeCharacter(48,57);
        
                        System.out.println(hurufBesar+" "+angka+" "+simbol+" "+hurufKecil+" "+angkaLagi);
                    }
        
                    public static char randomSeriesForThreeCharacter(int min,int max) {
                        int randomNumber = ThreadLocalRandom.current().nextInt(min, max + 1);
                        char random_3_Char = (char) (randomNumber);
                        return random_3_Char;
                     }
                 }