gpt4 book ai didi

java - PigLatin 程序帮助...大写?

转载 作者:行者123 更新时间:2023-12-01 12:12:13 28 4
gpt4 key购买 nike

除了大写部分之外,我的程序正在运行:以下是将英语单词 englishWord 翻译为 Pig 拉丁语单词 pigLatinWord 的方法:A。如果英语单词中没有元音,那么pigLatinWord就是英语单词+“ay”。 (有十个元音:“a”、“e”、“i”、“o”和“u”及其对应的大写字母。)b.否则,如果 englishWord 以元音开头,则 pigLatinWord 只是 englishWord +“yay”。C。否则(如果 englishWord 中有元音但不以元音开头),则 pigLatinWord 为 end + start + "ay",其中 end 和 start 定义如下:1. 令 start 为所有 englishWord 直到(但不包括)第一个元音。2. 设 end 为英语单词从第一个元音开始的所有内容。3. 但是,如果 englishWord 是大写的,则大写结束并“取消大写”开始。

大写部分怎么做?到目前为止,我得到Hasta= astaHay。应该是Hasta = Astahay

这是到目前为止的基本程序:

public static boolean isVowel(char c) {
if (c == 'a' && c == 'A') {
return true;
} else if (c == 'e' && c == 'E') {
return true;
} else if (c == 'i' || c == 'I') {
return true;
} else if (c == 'o' || c == 'O') {
return true;
} else if (c == 'u' || c == 'U') {
return true;
} else {
return false;
}
}

public static String convertPigLatinWord(String englishWord) {
int length = englishWord.length();
if (englishWord.charAt(length - 1) == '.' && englishWord.charAt(length - 1) == '!' && englishWord.charAt(length - 1) == '?') {

char ch = englishWord.charAt(0);
String rest = englishWord.substring(1, length - 1);
return (rest + ch + "ay" + englishWord.charAt(length - 1) + "\"" + " ");

} else if (isVowel(englishWord.charAt(0))) {
return (englishWord + "yay" + " ");
} else {
char ch = englishWord.charAt(0);
String rest = englishWord.substring(1);
return (rest + ch + "ay" + " ");
}

}
public String translate() {
String pigLatinPhrase = "";
while (englishPhrase.length() > 1) {
String word = getWord();
pigLatinPhrase += convertPigLatinWord(word) + " ";
}
return pigLatinPhrase;
}


public static void main(String[] args) {

String answer = "";
do {
Scanner keyboard = new Scanner(System.in);
String input;
System.out.print("Please enter an English phrase: ");
input = keyboard.nextLine();
PigLatin3 first = new PigLatin3(input);
System.out.println(first.translate());
System.out.println("Would you like to translate another phrase? (y or n)");
answer = keyboard.nextLine();

} while (!(answer.equals("N")) && !(answer.equals("n")));
System.exit(0);
}

}

最佳答案

您可以通过将字符串分解为子字符串然后将它们大写来将字母大写:

String word = word.substring(0, 1).toUpperCase() + word.substring(1);

所以只需使用 String 的 toUpperCase() 和 toLowerCase() 方法...

还有一个巧妙的技巧,您可以根据 ASCII 表对单个字符使用。只需将它们与 32 进行异或即可得到另一种情况。

您正在寻找的是这样的:

public static String onlyFirstLetterUpperCase(String a){
int i;
for (i = 0; i < a.length(); i++){
if("AEIOUaeiou".indexOf(a.charAt(i)) != -1 )
break;
// indexOf looks for a char in a given string and returns its
// position or -1 if not found. So if this indexOf returns -1 I can be sure,
// that the character is not a vowel
}
return a.substring(0, i + 1).toUpperCase() + a.substring(i + 1).toLowerCase();
}

执行操作后调用此方法即可

关于java - PigLatin 程序帮助...大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27205325/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com