我应该写一个程序,处理用户输入并将其翻译成Pig Latin并打印出来。我的翻译指南是:
Pig Latin是英语,每个单词的开头辅音都移到末尾,后跟“ay”。以元音开头的单词只需附加“ay”即可。例如,在Pig Latin中,短语“蘑菇蓝的最深阴影”会出现如下:e-Thay eepest day ade shay of ay-ushroom may ue blay
所以我写了这个程序:
import java.util.Scanner;
public class Nothing
{
public static void main(String args[])
{
System.out.println("Enter sentence that has to be translated into Pig Latin ");
Scanner console = new Scanner(System.in);
String token = console.next();
String translated = processToken(token) + " ";
while(console.hasNext())
{
token = console.next();
translated = translated + processToken(token) + " ";
}
System.out.println(translated);
}
public static String processToken(String token)
{
String processed = "";
if(!(fC(token) == 'a' || fC(token) == 'e' || fC(token) == 'i' || fC(token) == 'o' || fC(token) == 'u' || fC(token) == 'y'))
{
if(fC(token) != 't')
{
processed = token.substring(1) + "-" + token.charAt(0) + "ay";
}
else
{
processed = token.substring(2) + "-" + token.substring(0, 2) + "ay";
}
}
else
{
processed = token + "-ay";
}
return processed;
}
public static char fC(String token) //returns first character in lowercase
{
return Character.toLowerCase(token.charAt(0));
}
}
它不起作用:(我输入输入,它什么也不做:/我用一个简单的字符串而不是System.in在扫描仪中测试了它,它起作用了。请帮帮我!
您的代码可以工作,但如果您稍微调整它,使其在输入每一行时都能完全处理和打印,则可能会工作得更好。我建议:
例如
System.out.println("Enter sentence that has to be translated into Pig Latin ");
Scanner console = new Scanner(System.in);
while (console.hasNextLine()) {
String line = console.nextLine(); // get whole line
String[] tokens = line.split("\\s+"); // split it on whitespace
for (String token : tokens) {
// process and print out each token
System.out.print(processToken(token) + " ");
}
System.out.println(); // print out new line
// check if line contains "exit"
if (line.toLowerCase().contains(EXIT)) {
break;
}
}
if (console != null) {
console.close();
}
其中EXIT是公共静态字符串EXIT="export";
我认为正在等待额外的输入。发送了一个EOF信号,因为在代码中没有其他终止逻辑。您可以在调试中运行它(在循环中使用断点来验证,
我必须创建一个java类,我可以从标准控制台读取一些命令。这就像模拟网格中的运动。我很难完全创建我想要的东西。假设我有这样的命令: 从X、Y、方向开始 步子 “X”和“Y”是矩阵6x6的坐标。“方向”可以是“上”、“下”、“左”、“右”。如果我写“步骤”,我会做一步。 程序应该丢弃STEP命令,直到有效的START命令被执行。之后,我可以使用STEP或另一个有效的START命令,它将使用新的坐标将
我正在尝试编写使用Scanner类从用户那里获取输入的代码。但是hasNext()、hasNextInt()和hasNextLine()每次都会运行无限循环。
我写了这个正则表达式
问题内容: 我的Java作业有问题。我遇到了意外的异常,特别是: java.util.NoSuchElementException:找不到行 我正在使用,该程序不断读取任何内容,并重复“无效格式”异常文本。如果输入正确的值,则第一部分通过,然后该部分立即进入此异常。如果输入的值不正确,则它将开始循环异常。 这是我的代码: 问题答案: 您关闭了多个库,这些库关闭了底层库,因此另一个库将不再从同一库和
问题内容: 使用Scanner类中的useDelimiter时遇到一些问题。 如果我有这个输入 美国广播公司 输出将是 AB 然后等到我键入另一个“-”以打印出最后一个字符 但是,如果我没有用户输入数据,而是将字符串插入到Scanner中,则代码将起作用。原因是什么?如何解决?我不想使用StringTokenzier 问题答案: 如果没有等待您输入另一个,则将错误地假定您已完成输入。 我的意思是,
我做了一个程序,要求3个整数来输出三角形的类型。所有内容都成功运行和编译,但是,在要求用户查看是否要再次循环的部分,联机编译器会输出错误: 异常线程"main"java.util.NoSuchElement异常在java.util.Scanner.throwFor(Scanner.java:838)在java.util.Scanner.next(Scanner.java:1347)在Assignm