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.![]()
`