Random Name Generator: Android

By Abhishek Shukla

Random Name Generator: Android

Today i needed a name generator so i wrote one myself (i didn’t like the existing ones i found via Google. Here is the test code i used: `

`

1:  NameGenerator gen = new NameGenerator();
2:  for (int i = 0; i out.println(gen.getName()); }

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /white-space: pre;/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

It produces names like: Pausyp Braurjnn Thushoob Einnjk Qeidegh Aub Xoihut Voopych Gljint Och Stontaigh Loofautt Grennoogh Jshjnt Zjlouv Fabeih Aishof Hoir Ait Jihoint Aiv Poim Flott Ustjv Zjis Xittoutt I also added constructors for complete customization of the generate process. Here is the code: `

1:  public class NameGenerator {
2:  private List vocals = new ArrayList();
3:  private List startConsonants = new ArrayList();
4:  private List endConsonants = new ArrayList();
5:  private List nameInstructions = new ArrayList();
6:  public NameGenerator() {
7:  String demoVocals[] = { "a", "e", "i", "o", "u", "ei", "ai", "ou", "j",
8:  "ji", "y", "oi", "au", "oo" };
9:  String demoStartConsonants[] = { "b", "c", "d", "f", "g", "h", "k",
10:  "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z",
11:  "ch", "bl", "br", "fl", "gl", "gr", "kl", "pr", "st", "sh",
12:  "th" };
13:  String demoEndConsonants[] = { "b", "d", "f", "g", "h", "k", "l", "m",
14:  "n", "p", "r", "s", "t", "v", "w", "z", "ch", "gh", "nn", "st",
15:  "sh", "th", "tt", "ss", "pf", "nt" };
16:  String nameInstructions[] = { "vd", "cvdvd", "cvd", "vdvd" };
17:  this.vocals.addAll(Arrays.asList(demoVocals));
18:  this.startConsonants.addAll(Arrays.asList(demoStartConsonants));
19:  this.endConsonants.addAll(Arrays.asList(demoEndConsonants));
20:  this.nameInstructions.addAll(Arrays.asList(nameInstructions));
21:  }
22:  /**
23:  *
24:  * The names will look like this
25:  * (v=vocal,c=startConsonsonant,d=endConsonants): vd, cvdvd, cvd, vdvd
26:  *
27:  * @param vocals
28:  * pass something like {"a","e","ou",..}
29:  * @param startConsonants
30:  * pass something like {"s","f","kl",..}
31:  * @param endConsonants
32:  * pass something like {"th","sh","f",..}
33:  */
34:  public NameGenerator(String[] vocals, String[] startConsonants,
35:  String[] endConsonants) {
36:  this.vocals.addAll(Arrays.asList(vocals));
37:  this.startConsonants.addAll(Arrays.asList(startConsonants));
38:  this.endConsonants.addAll(Arrays.asList(endConsonants));
39:  }
40:  /**
41:  * see {@link NameGenerator#NameGenerator(String[], String[], String[])}
42:  *
43:  * @param vocals
44:  * @param startConsonants
45:  * @param endConsonants
46:  * @param nameInstructions
47:  * Use only the following letters:
48:  * (v=vocal,c=startConsonsonant,d=endConsonants)! Pass something
49:  * like {"vd", "cvdvd", "cvd", "vdvd"}
50:  */
51:  public NameGenerator(String[] vocals, String[] startConsonants,
52:  String[] endConsonants, String[] nameInstructions) {
53:  this(vocals, startConsonants, endConsonants);
54:  this.nameInstructions.addAll(Arrays.asList(nameInstructions));
55:  }
56:  public String getName() {
57:  return firstCharUppercase(getNameByInstructions(getRandomElementFrom(nameInstructions)));
58:  }
59:  private int randomInt(int min, int max) {
60:  return (int) (min + (Math.random() * (max + 1 - min)));
61:  }
62:  private String getNameByInstructions(String nameInstructions) {
63:  String name = "";
64:  int l = nameInstructions.length();
65:  for (int i = 0; i char x = nameInstructions.charAt(0); switch (x) { case 'v': name += getRandomElementFrom(vocals); break; case 'c': name += getRandomElementFrom(startConsonants); break; case 'd': name += getRandomElementFrom(endConsonants); break; } nameInstructions = nameInstructions.substring(1); } return name; } private String firstCharUppercase(String name) { return Character.toString(name.charAt(0)).toUpperCase() + name.substring(1); } private String getRandomElementFrom(List v) {
66:  return v.get(randomInt(0, v.size() - 1));
67:  }
68:  }

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /white-space: pre;/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

`

“ 

`Comment Please.Rolling on the floor laughing

`