Это для игры Mad-libs из курса UW.Я там не студент, но просто следую за этим.
Текстовый файл, из которого я получаю информацию, выглядит следующим образом:
One of the most <adjective> characters in fiction is named
"Tarzan of the <plural-noun> ." Tarzan was raised by a/an
<noun> and lives in the <adjective> jungle in the
heart of darkest <place> . He spends most of his time
eating <plural-noun> and swinging from tree to <noun> .
Whenever he gets angry, he beats on his chest and says,
" <funny-noise> !" This is his war cry. Tarzan always dresses in
<adjective> shorts made from the skin of a/an <noun>
and his best friend is a/an <adjective> chimpanzee named
Cheetah. He is supposed to be able to speak to elephants and
<plural-noun> . In the movies, Tarzan is played by <person's-name> .
Вот мой вывод, с которым у меня проблемы:
Пожалуйста, введите / множественное число существительное: Пожалуйста, введите / существительное:
Я хочу, чтобы они были отдельными строками (очевидно).Это происходит только тогда, когда два «<>» находятся в одной строке.
Вот часть кода, которую я использую:
Scanner search = new Scanner(file);
while (search.hasNextLine()) {
String prompt = search.next();
if (prompt.startsWith("<") && prompt.endsWith(">")) {
prompt = prompt.replace('<', ' ');
prompt = prompt.replace('>', ':');
prompt = prompt.replace('-', ' ');
System.out.print("Please type a/an" + prompt + " ");
String funnyText = console.next();
output.print(funnyText + " ");
} else {
output.print(prompt + " ");
}
}
Надеюсь, один из вас сможет это выяснить ипомогите мне.
что я пробовал:
import java.io.*;
import java.util.*;
public class Homework {
public static void main(String[] args) throws FileNotFoundException {
Scanner console = new Scanner(System.in);
System.out.println("Welcome to the game of Mad Libs.");
System.out.println("I will ask you to provide various words");
System.out.println("and phrases to fill in a story.");
System.out.println("The result will be written to an output file.");
System.out.println();
Boolean menuLoop = false;
while (menuLoop == false) {
System.out.print("(C)reate mad-lib, (V)iew mad-lib, (Q)uit? ");
String input = console.next();
if (input.toLowerCase().startsWith("c")) {
create(console);
menuLoop = true;
} else if (input.toLowerCase().startsWith("v")) {
System.out.println("Game will play soon.");
menuLoop = true;
} else if (input.toLowerCase().startsWith("q")) {
System.out.println("Thanks for playing.");
menuLoop = true;
} else {
menuLoop = false;
}
}
}
public static void create(Scanner console) throws FileNotFoundException {
System.out.print("Input file name: ");
String inputFile = console.next();
File file = new File(inputFile);
while (!file.exists()) {
System.out.print("File not found. Try again: ");
inputFile = console.next();
file = new File(inputFile);
}
System.out.print("Output file name: ");
String outputFile = console.next();
PrintStream output = new PrintStream(new File(outputFile));
System.out.println();
Scanner search = new Scanner(file);
while (search.hasNextLine()) {
String prompt = search.next();
if (prompt.startsWith("<") && prompt.endsWith(">")) {
prompt = prompt.replace('<', ' ');
prompt = prompt.replace('>', ':');
prompt = prompt.replace('-', ' ');
System.out.print("Please type a/an" + prompt + " ");
String funnyText = console.next();
output.print(funnyText + " ");
} else {
output.print(prompt + " ");
}
}
}
}
Вот мой вывод:
Добро пожаловать в игру Mad Libs.Я попрошу вас предоставить различные слова и фразы, чтобы заполнить историю.Результат будет записан в выходной файл.
(C) reate mad-lib, (V) iew mad-lib, (Q) uit?c Имя входного файла: tarzan.txt Имя выходного файла: output
Пожалуйста, введите a / прилагательное: sadgs Пожалуйста, введите a / множественное число существительное: sagsd sdagsd Пожалуйста, введите a / существительное: Пожалуйста, введите a / прилагательное: