Java:在运行时编辑时创建新字符串

时间:2013-09-08 06:36:32

标签: java string methods runtime

我正在用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的新手,所以如果你试图向我展示任何先进的东西,请以我能理解它的方式解释它,或者找到一种更简单的方法。

2 个答案:

答案 0 :(得分:1)

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

首先,您可以创建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 ...

要详细了解如何使用ListHashMap阅读参考List:hereHashMap: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