我创建了一种将多行翻译成 Pig Latin 的方法。预期的输入如下所示:
The cat jumped over the fox
我的代码输出文本,正确翻译成 Pig Latin 并具有正确的格式(即单词分开,行分开。但是,我通过使用扫描仪类的两个实例来做到这一点。谁能建议我如何删除这两个实例并将它们浓缩成一个?
顺便说一句,请随时提供任何其他建议,但请记住,我是一个仍在学习的新手!
File file = new File("projectdata.txt");
try
{
Scanner scan1 = new Scanner(file);
while (scan1.hasNextLine())
{
Scanner scan2 = new Scanner(scan1.nextLine());
while (scan2.hasNext())
{
String s = scan2.next();
boolean moreThanOneSyllable = Syllable.hasMultipleSyllables(s);
char firstLetter = s.charAt(0);
String output = "";
if (!moreThanOneSyllable && "aeiou".indexOf(firstLetter) >= 0)
output = s + "hay" + " ";
else if (moreThanOneSyllable && "aeiou".indexOf(firstLetter) >= 0)
output = s + "way" + " ";
else
{
String restOfWord = s.substring(1);
output = restOfWord + firstLetter + "ay" + " ";
}
System.out.print(output);
}
System.out.println("");
scan2.close();
}
scan1.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
注意:几天前我在 Code Overflow 上发布了类似的内容,并从那里给出的答案中获得了一些建议。然而,虽然有人建议不要使用两个扫描仪类,但我就是无法正确格式化。