【问题标题】:Store 7 Randomly generated numbers & names in an array Java在数组 Java 中存储 7 个随机生成的数字和名称
【发布时间】:2015-03-20 01:09:31
【问题描述】:

我完全不知道该怎么做,但我想生成 1000 个随机生成的 7 位数字和 5 个字母名称。名称可以像“FjwaS”一样,它不必是实际名称。我想将所有这些值存储在 2 个不同的数组中。 telephone 数组,然后是 name 数组。我完全不确定我应该如何处理这个问题。

【问题讨论】:

  • 为什么不考虑使用 HashMaps?
  • 首先google一下如何生成随机数,以及如何生成随机String。
  • 我不知道 HashMap 是什么,抱歉我太新了
  • 在哈希图中,您可以将数据保存为一对(键,值)。在您的情况下,它可能是 (number,name)

标签: java arrays random


【解决方案1】:

简单:

1 - 创建你的收藏

2 - 迭代 1000 次

..2a - 生成随机值

..2b - 填充您的收藏

【讨论】:

    【解决方案2】:

    下面是上面给出的问题的一个非常基本的实现代码。稍后,您可以使用所需的集合。将MAX 的值更改为您想要的长度。主要工作由randomInt()randomString() 函数完成。

    import java.util.*;
    
    public class RandomDirectoryCreation
    {
        static final String alphabets = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
        public static void main(String[] args)
        {
            final int MAX = 10;
    
            String[] name = new String[MAX];
            int[] telephone = new int[MAX];
    
            for(int i=0; i<MAX; i++)
            {
                name[i] = randomString(5);
                telephone[i] = randomInt(1000000, 9999999);
            }
    
            for(int i=0; i<MAX; i++)
            {
                System.out.println("Name: " + name[i] + " Telephone: " + telephone[i]);
            }
        }
    
        public static int randomInt(int min, int max) {
            Random rand = new Random();
            int randomNum = rand.nextInt((max - min) + 1) + min;
            return randomNum;
        }
    
        public static String randomString(int len) 
        {
            Random rand = new Random();
            StringBuilder word = new StringBuilder(len);
            for( int i = 0; i < len; i++) {
                word.append( alphabets.charAt(rand.nextInt(alphabets.length())));
            }
            return word.toString();
        }
    }
    

    样本输出:

    Name: kBbSL Telephone: 4152479
    Name: GOEat Telephone: 7473373
    Name: KRBPq Telephone: 8346073
    Name: yqjpu Telephone: 7553636
    Name: yvRBA Telephone: 2133757
    Name: ajUBg Telephone: 3826625
    Name: BhBVr Telephone: 5714195
    Name: AvNYB Telephone: 6179815
    Name: DfsxM Telephone: 6611458
    Name: gJRka Telephone: 2114751
    

    参考资料:

    1. How do I generate random integers within a specific range in Java?

    2. How to generate a random alpha-numeric string?

    【讨论】:

      【解决方案3】:

      为什么要重新发明轮子?您可以使用来自 Apache Commons 的 RandomStringUtils

      import org.apache.commons.lang3.RandomStringUtils;
      import java.util.Arrays;
      
      
      public class Main {
      
          public static void main(String[] args) {
      
              String[] names = new String[1000];
              String[] telephones = new String[1000];
      
              for (int i=0; i<1000; i++) {
                  String randomName = RandomStringUtils.randomAlphabetic(5);
                  names[i] = randomName;
      
                  String randomTelephone = RandomStringUtils.randomNumeric(7);  
                  telephones[i] = randomTelephone;
              }
      
              System.out.println(Arrays.toString(names));
              System.out.println(Arrays.toString(telephones));
      
          }
      }
      

      【讨论】:

        【解决方案4】:

        我写的是随机字符串,你可以根据自己的需要修改:

        import java.util.Random;
        
        public class randomWord 
        {   
            public static void main(String args[])
            {
                Random charp = new Random();
        
                String[] chars = {"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", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "M", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
        
                String[] word = new String[9];
        
                for(int i = 0; i < 9;i++)
                {
                    word[i] = chars[charp.nextInt(70)];
                }
        
                System.out.print("Your randomly generated string is: ");
        
                for(int i = 0; i < 9;i++)
                {
                    System.out.print(word[i]);
                }
        
        
                Random number = new Random();
        
                System.out.println("\nRandom number: "+number.nextInt(6));
        
            }
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-09
          • 1970-01-01
          • 2015-12-06
          • 1970-01-01
          相关资源
          最近更新 更多