到目前为止,我一直在尝试编写一个程序,该程序应该将英语句子翻译为类似于Pig Latin的语言。这就是问题的模样。
您将为DrA的TwinSpeak写英文翻译。双胞胎通常是其他人无法理解的语言。这是一个密码有点像“拉丁猪”,但是所有双胞胎都有自己的规则。
以元音开头的单词在末尾添加了“ -eh”。
鸡蛋变成鸡蛋,打开变成开放,最终变成极限。
以单个辅音开头的单词,会将辅音移到单词的末尾,然后添加“ eh”单词,变成ord-weh,主要变成ainly-meh
以2或3个辅音开头的单词根本不会改变。
西班牙仍然是西班牙。三个仍然是三个。
这是我应该翻译的:
西班牙的雨主要留在平原上,而法国的蚂蚁主要留在植物上
这应该变成这样:
Ain-reh in-eh西班牙留在ainly-meh在eh上平原ut-beh蚂蚁-eh in-eh法国在Ainly-eh-eh在植物上
我已经编写了代码,但是,它似乎一次只能翻译一个单词,而不是整个句子。如果我翻译整个句子,则会收到错误消息。
import java.util.Scanner;
public class PartD {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter a phrase to convert: ");
String phrase = keyboard.nextLine();
String[] words = phrase.split(" ");
for(int i = 0; i < words.length; i++ ) {
char firstLetter = (words[i].charAt(0));
if (firstLetter == 'a' || firstLetter == 'e' || firstLetter == 'i' || firstLetter == 'o' || firstLetter == 'u') {
String vowel = words[i] +"-eh";
System.out.print(vowel);
} else {
String start = words[i].substring(0,1);
String end = words[i].substring(1,phrase.length());
System.out.print(end + "-" + start + "eh" );
}
}
System.out.println( );
}
}
最佳答案
这行:
String end = words[i].substring(1,phrase.length());
使用整个初始字符串的长度。
您需要解析的单词的长度,例如
String end = words[i].substring(1,words[i].length());
另外,在您创建的每个单词上添加一个空格以分解结果,例如
String vowel = words[i] +"-eh "; // note the added space