需求
给定一个由若干个单词组成的句子 sentence,单词间由空格分隔。单词仅由大写和小写的英文字母组成。
将句子转换为山羊拉丁文格式。
山羊拉丁文规则如下:
单词以元音字母(a,e,i,o,u)开头,在单词后面添加 "ma"
例如, "apple" 变为 "applema"
单词以辅音字母(非元音字母)开头,移除第一个字符并将它放到末尾,之后添加 "ma"
例如, "goat" 变为 "oatgma"
根据单词在句子中的索引,在单词最后添加与索引相同数量的字母 'a',索引从 1 开始
例如,在第一个单词后添加 'a',在第二个单词后添加 'aa',以此类推
返回将 sentence 转换为山羊拉丁文后的句子。
实现代码
package test;
public class GoatLatin {
public static String solution(String sentence) {
if (sentence == null) {
return "";
}
sentence = sentence.trim();
if (sentence.length() <= 0) {
return "";
}
String vowel = "aeiouAEIOU";
String goat = "ma";
String space = " ";
StringBuilder last = new StringBuilder("a");
StringBuilder goatLatin = new StringBuilder();
String[] words = sentence.split(space);
for (int i = 0; i < words.length; i++) {
String word = words[i];
String firstWord = String.valueOf(word.charAt(0));
if (vowel.contains(firstWord)) {
goatLatin.append(word);
} else {
goatLatin.append(word.substring(1, word.length())).append(firstWord);
}
goatLatin.append(goat).append(last);
if (i < words.length - 1) {
goatLatin.append(space);
}
last.append("a");
}
return goatLatin.toString();
}
}
测试结果
输入:I speak Goat Latin
输出:Imaa peaksmaaa oatGmaaaa atinLmaaaaa