2015-11-25 5 views
-3

Я пытаюсь создать программу палача, где слова уже установлены в начале, и пользователь должен попытаться их угадать.Несколько слов в одной строке?

Но у меня серьезные проблемы с попыткой выяснить, как разделить слова друг от друга, чтобы я мог получить программу, чтобы выбрать случайный из них.

Я попытался объявить следующие слова в виде строки, как выбрать один вместо них, или это даже правильно?

Также я только начал Java, поэтому я могу использовать только инструкции if и т. Д., Видел несколько человек, использующих массивы, но я не могу использовать их, поскольку это для проекта, и я не должен знать, как это сделать.

String words = "cat:dog:hat:sat:mat:rat"; 
+0

Вы можете «разбить» слова, используя метод «split», с помощью: в качестве разделителя. – Stultuske

+0

'видел несколько человек, использующих массивы, но я не могу их использовать, поскольку это для проекта' Вы серьезно? –

+0

Технически это не так, но в письменной форме легче сделать ошибку: {«hello», «how», «are», «you»}; затем в «привет»: как: есть: вы »; – Stultuske

ответ

0

Существует функция разделения, которая принимает шаблон как входной сигнал и возвращает массив строк. См. documentation.

Вот пример

String words = "cat:dog:hat:sat:mat:rat"; 
String[] array = words.split(":"); 
+0

Мне не разрешено использовать массивы, спасибо в любом случае :) – Jack

+0

Вы можете итерация бросить массив, чтобы получить простые строки. – ThomasThiebaud

0

Функция сплит подходит для этого:

String[] str_array = "name:score:abc".split(":"); 

Вы будете использовать переменные и присваивать им результирующие строки indexes.to получить конкретное слово.

String stringa = str_array[0]; 
    String stringb = str_array[1]; 
    String stringc = str_array[2]; 
+0

Есть ли другой способ, который не включает в себя массивы? Поскольку я не могу использовать их. Спасибо – Jack

+0

@Jack да, вы можете использовать подстроку, но это грязно, и создает ужасный код, не говоря уже о том, что он сделает ваш код намного менее эффективным и более сложным для написания. – Stultuske

+0

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

1

Как вы не можете использовать массивы можно сначала создать случайное число, а затем в зависимости от результата выбрать один из строк.

Random random = new Random(); 
int outcome = random.nextInt(6); // 6 being the number of different words 
String word = ""; 
if (outcome == 0) 
    word = "cat"; 
else if (outcome == 1) 
    word = "dog"; 
... 

После этого word будет держать слово Java, выбранный случайным образом для вас.

Но как уже указывалось другими, это применимо только в том случае, если вы не можете использовать массивы. В общем случае вы либо использовали бы подход с split и выделили один из элементов, либо у вас будет отдельный файл со словами в виде строк, а затем выберите одну из строк в документе наугад.

Второй подход имеет то преимущество, что вы можете добавлять новые слова без изменения вашей программы.

Кроме того, чтение определенной строки документа для получения его содержимого возможно даже без использования массивов. Вы можете использовать ответ here и просто вызвать readLine случайное число раз, а затем взять строку, которую он возвращает как слово.

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