2013-09-08 6 views
0

Я создаю генератор Mad Lib на Java. Если вы знаете, что такое 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 раз вместо того, чтобы писатьJava: создание новых строк во время выполнения для редактирования

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

... и так каждый раз для каждой части речи. Я еще не узнал о массивах, и я думаю, что это может иметь решение, связанное с этим. Как я уже сказал, я новичок в Java, поэтому, если вы попытаетесь показать мне что-то продвинутое, объясните это так, чтобы я мог понять это или найти более простой способ сделать это.

+0

В случае, если вы чувствуете ", что массивы могут помочь здесь, почему бы не смотреть на это? Также проверьте структуру коллекций Java: http://docs.oracle.com/javase/tutorial/collections/ – home

+0

Я посмотрел на массивы чуть больше после публикации этого сообщения, что, вероятно, не было тем, что я должен был сделать. Ответ, который я выбрал, подтвердил то, что я узнал после поиска, так что спасибо за это. – Radi0actvChickn

ответ

0

Если у вас есть счет существительных, скажем, в 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 arrays tutorial

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

Смежные вопросы