Java随机名称生成器,选择单词长度



我的Java程序要求我创建一个6-12个字符之间的随机名称,名称中的奇数位置必须是辅音,偶数位置必须是元音,到目前为止,我甚至无法让它打印随机的12个字母。方法brandName((中的以下代码应该迭代并不断向字符串new_Name添加随机字母,直到它有12个字母为止,但每当我运行它时,它只向new_Name打印一个随机字母。我已经想了好几个小时了。。。。下方的代码

public class BrandName {
public static void main(String[] args) {

int name_iterations = 1;
int name_counter = 0;
while (name_iterations <= 10) {
name_counter++;
name_iterations++;
System.out.print("n" + name_counter +") " + brandName());




}
}
public static String brandName() {
for (int iterations = 0; iterations <= 10; iterations ++); {
String new_Name = "";

int letter_Selector = 24;
int randomChar = (int) (Math.random() * letter_Selector);


String alphabet = "abcdefghijklmniprstuvwxz";
String odd_Consonants = "bcdfghjklmnprstvwxz";
String even_Vowels = "aeiou";
for (int max_Name = 0; max_Name <= 12; max_Name++); {
new_Name = new_Name + (alphabet.charAt(randomChar)); 
return new_Name;
} 

}

}

}

您需要将字符串的初始化移出循环:

for (int iterations = 0; iterations <= 10; iterations ++); {
String new_Name = "";

String new_Name = "";
for (int iterations = 0; iterations <= 10; iterations ++); {

否则,每次迭代都会丢失上一次迭代中的上一个随机字符。

然后你需要等待循环完成后再返回:

for (int max_Name = 0; max_Name <= 12; max_Name++); {
new_Name = new_Name + (alphabet.charAt(randomChar)); 
// return new_Name; <-- remove this line
} 
return new_Name; // <-- and put it here

现在我把它放在一起看,我不确定iterations循环在做什么,你可能只需要完全删除部分

public static String brandName() {
String new_Name = "";
int letter_Selector = 24;
String odd_Consonants = "bcdfghjklmnprstvwxz";
String even_Vowels = "aeiou";
int lengthSelector = ThreadLocalRandom.current().nextInt(5, 11 + 1);
for (int max_Name = 0; max_Name <= lengthSelector; max_Name++) {
if (max_Name % 2 == 0) {
int randomChar = (int) (Math.random() * even_Vowels.length());
new_Name = new_Name + (even_Vowels.charAt(randomChar));     
} else {
int randomChar = (int) (Math.random() * odd_Consonants.length());
new_Name = new_Name + (odd_Consonants.charAt(randomChar));   
}

}
return new_Name; 
}

最新更新