我必须设计一个将英语转换为Pig Latin的程序。我很难将用户提供的输入中包含的所有单词转换为Pig Latin。使用我当前的代码,我实现了输出:
输入:这不起作用 输出:histay不工作
虽然我想要的输出是:
输入:这不起作用。
输出:Histay ishay otnay orkingway
我做错了什么?我只是想朝着正确的方向努力。
public class piglatin {
// A program designed to convert English words in to Pig Latin
public static void main(String[] args) {
char a, e, i, o, u, A, E, I, O, U, b;
String alphabet = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
Scanner word = new Scanner (System.in);
System.out.println("Please enter a word: ");
String incoming = word.nextLine();
System.out.println("Input: " + incoming);
String newincoming = incoming.substring(1);
String newerincoming = incoming.substring(0,1);
a = alphabet.charAt(0);
e = alphabet.charAt(8);
i = alphabet.charAt(16);
o = alphabet.charAt(28);
u = alphabet.charAt(40);
A = alphabet.charAt(1);
E = alphabet.charAt(9);
I = alphabet.charAt(17);
O = alphabet.charAt(29);
U = alphabet.charAt(41);
b = incoming.charAt(0);
if ((b == a) || (b == e) || (b == i) || (b == o) || (b == u) || (b == A) || (b == E) || (b == I) || (b == O) || (b == U)) {
System.out.println("Output: " + incoming + "hay");
} else {
System.out.println("Output: " + newincoming + newerincoming + "ay");
}
}
}
答案 0 :(得分:3)
输入:这不起作用 输出:他的工作不正常
您正在阅读整篇文章并使用" pig latin"统治整个句子。这将删除句子的第一个字母,并将其放在最后一个单词的末尾。
为了使其正常工作,您需要split
围绕空格的输入字符串,并将pig latin规则应用于循环中的每个单词。我建议创建一个方法,将String作为输入并进行猪拉丁转换。这样你只需要调用split
方法返回的数组中每个单词的方法。