0

我正在用 Java 创建一个 Mad Lib 生成器。如果您知道 Mad Lib 是什么,这将更容易理解。另外,我是 Java 新手,所以请耐心等待。我想让每个 Mad Lib 只询问那个特定的形容词、名词等的数量。例如,Mad Lib 1 可能有 3 个名词,而 Mad Lib 2 有 5 个名词。有没有办法编写一个单独的方法来运行 X 次,创建 X 个新字符串(供玩家输入 X 个名词),并给每个字符串一个不同的名称?只需给字符串命名,如 nounA、nounB、nounC 或 noun1、noun2、noun3 即可。我需要最后的故事才能区分它们。如果每次我决定在我的程序中添加另一个 Mad Lib 以便能够将 addNoun() 方法循环 8 次而不是编写,那将是非常好的

String nounA = scan.next();
System.out.print("\f");
String nounB = scan.next();
System.out.print("\f");

...等等每次针对每个词性。我还没有了解数组,我认为这可能有一个解决方案。就像我说的,我是 Java 新手,所以如果你想向我展示任何高级的东西,请以我能理解的方式解释它,或者找到一种更简单的方法来完成它。

4

2 回答 2

1

如果我理解您的问题是正确的,那么您需要使用ArrayListHashMap实现此目的:

首先你可以创建ArrayListofString来存储 X 名词。一个 ex: ofArraylist是:

  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 ...

要了解更多关于使用ListHashMap阅读参考List:hereHashMap:here

于 2013-09-08T06:57:09.337 回答
0

如果您有名词的数量,例如 in 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],noun[1]等。不过,您可能会使用循环并将所选名词的索引存储在某处。

另请参阅:Java 数组教程

于 2013-09-08T07:07:17.143 回答