我正在用Java创建一个Mad Lib生成器。如果你知道Mad Lib是什么,这将更容易理解。另外,我是Java的新手,所以请耐心等待。我想这样做,以便每个Mad Lib只询问那个特定形容词中的形容词,名词等的数量。例如,Mad Lib 1可能有3个名词,而Mad Lib 2有5个名词。有没有办法写一个单独的方法来运行X次,创建X个新字符串(让玩家输入X名词),并给每个字符串一个不同的名字?只是给出名字如名字A,名词B,名词C或名词1,名词2,名词3的字符串是完美的。我需要最后的故事才能区分它们。如果每次我决定将另一个Mad Lib添加到我的程序中以便能够循环addNoun()方法8次而不是写
那将是非常好的String nounA = scan.next();
System.out.print("\f");
String nounB = scan.next();
System.out.print("\f");
......每次演讲的每个部分都是如此。我还没有学过数组,我认为这可能有一个解决方案。就像我说的,我是Java的新手,所以如果你试图向我展示任何先进的东西,请以我能理解它的方式解释它,或者找到一种更简单的方法。
答案 0 :(得分:1)
如果我理解您的问题是正确的,那么您需要使用ArrayList
和HashMap
来实现此目的:
首先,您可以创建ArrayList
String
来存储X名词。例如:Arraylist
是:
List<String> nouns = new ArrayList<String>();
nouns.add('nounA'); // add related noun
//or
String nounStr = 'new Noun'
nouns.add(nounStr);
然后,您可以按HashMap
HashMap<String, List<String> > nounCategory = new HashMap<String, List<String> >();
nounCategory.put('madLib1', 'nouns'); // add all list with a unique key madLib1 ...
要详细了解如何使用List
和HashMap
阅读参考List:here和HashMap:here
答案 1 :(得分:0)
如果您有{1}中的名词计数,请使用以下数组:
int nounCount
然后你就可以访问不同的单词String[] nouns = new String[nounCount]; // Create an array
for (int i = 0; i < nouns.length; i++) {
nouns[i] = scan.next(); // Set each item
}
,noun[0]
等。你可能会在某处使用循环并存储所选名词的索引。
另请参阅:Java arrays tutorial