版本1
public static boolean endsWithVowel(String str) {
String[] arr = {"a","e","i","o","u"};
String[] str1 = str.split("");
for(var i = 0; i<arr.length; i++){
if(str1[str1.length-1].toLowerCase().equals(arr[i])) {
return true;
}
}
return false;
}
注意判断字符串是否相等用equals方法,而不是==
版本2
public static boolean endsWithVowel(String str) {
String vowel="aeiouAEIOU";
return vowel.contains(str.substring(str.length()-1, str.length()));
}
这应该是最简单的java方法了,两行代码实现。
版本3
public static boolean endsWithVowel3(String str) {
String[] arr = {"a","e","i","o","u","A","E","I","O","U"};
for(var i = 0; i<arr.length; i++){
if(str.endsWith(arr[i])) {
return true;
}
}
return false;
}
利用的是String的endsWith()方法。
版本4
public static boolean endsWithVowel2(String str) {
return str.matches(".*[aeiouAEIOU]$");
}
利用正则表达式,一行代码实现。
点代表任何字符,星号表示零次或多次,
.*就表示了所有字母组合情况。
[]里面是或的关系
$代表最后一个字母
正则表达式就是满足特定规则的字符串,最后利用String的matches方法,返回boolean类型的值。
不足与改进欢迎交流,谢谢。