我一直在做一个猪拉丁语翻译器,它基本上从用户的句子中裁剪出单个单词,将其传递给翻译方法,该方法将逐字母查找a,e,i,o,u来翻译单词。从理论上讲,我认为它可以正常工作,但是我的代码出了点问题。我认为这是 charAt() 的事情,但考虑到我使用各种子字符串、长度和索引相关的东西,它看起来很乱。有人可以帮我修复我的代码吗?我也想知道是否有更好的方法来写这个。谢谢你的建议。
import java.util.*;
import static java.lang.System.*;
public class PigLatinTranslator {
public static Scanner scan = new Scanner(in);
public static void main(String args[]){
String translated = "";
out.println("Enter the sentence you want to translate");
String input = scan.nextLine ();
input = input.toUpperCase ();
while(input.length() > 0){
int a = input.indexOf (" ");
if (a == -1){
a = 1;
}
String stripped = input.substring (0, a);
input = input.substring (a+1, input.length());
translated += translator(stripped);
}
out.println(translated);
}
public static String translator(String input) {
int index = 0;
String implement, sum = "";
if(input.charAt (index) == 65 || input.charAt (index) == 69 || input.charAt (index) == 73 ||
input.charAt (index) == 79 || input.charAt (index) == 85){
input += "-ay ";
out.println(input);
return input;
}
while(input.charAt (index) != 65 && input.charAt (index) != 69 && input.charAt (index) != 73 &&
input.charAt(index) != 79 && input.charAt(index) != 85){
implement = Character.toString(input.charAt (index));
sum += implement;
index ++;
}
input = input.substring(index, input.length()) + "-" + sum + "ay";
return input;
}
}