简体   繁体   中英

Store 7 Randomly generated numbers & names in an array Java

I'm not sure at all how to go about this, but I want to generate 1000 randomly generated 7 digit numbers, and 5 letter names. The names could be like "FjwaS" anything, it doesnt have to be an actual name. I want to store all these values in 2 different arrays. telephone array, then a name array. I'm not sure how I should approach this at all.

Easy:

1 - create your collection

2 - iterate 1000 times

..2a - generate random values

..2b - populate your collection

Below is the code for a very basic implementation for the problem given above. Later, you can use your desired collection. Change the value of MAX to your desired length. The main work is done by the randomInt() and randomString() functions.

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

Sample Output:

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

References:

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

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

Why reinvent the wheel? You can use RandomStringUtils from Apache Commons.

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

    }
}

I had written it to generate a random string, you may change it according to your needs:

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

    }

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM