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.
Asked
Active
Viewed 817 times
0

Suhaib Janjua
- 3,538
- 16
- 59
- 73

turbo30067
- 1
- 1
-
Why don't you consider using HashMaps? – Luigi Cortese Mar 20 '15 at 01:12
-
1First, google how to generate random number, and how to generate random String. – Baby Mar 20 '15 at 01:12
-
1I don't know what a HashMap is, sorry im awfully new – turbo30067 Mar 20 '15 at 01:13
-
1in a hashmap you can save your data as a couple (key,value). In your case it could be (number,name) – Luigi Cortese Mar 20 '15 at 01:16
4 Answers
1
Easy:
1 - create your collection
2 - iterate 1000 times
..2a - generate random values
..2b - populate your collection

Luigi Cortese
- 10,841
- 6
- 37
- 48
1
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:

Community
- 1
- 1

UrsinusTheStrong
- 1,239
- 1
- 16
- 33
0
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));
}
}

Alin Pandichi
- 955
- 5
- 15
0
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));
}
}

Nirbhey Singh Pahwa
- 26
- 5