所以,在这个java程序中...我试图从字符串中返回最后一个字母。 捕获的是字符串可以以字母或数字结尾。我该怎么做呢? 另外 - 如果没有找到信件,我已被指示返回-1。
public static int lastElement(String s) {
for (int i = s.length(); i >= 0; i--){
int lastElement = s.indexOf(i);
char y = s.charAt(i);
if (Character.isDigit(y)){
i--;
}
else{
return lastElement;
}
}
return -1;
}
答案 0 :(得分:4)
查看我的评论内联。
public static int lastElement(String s) {
// the last index is length - 1
for (int i = s.length() - 1; i >= 0; i--) {
// get the character at an index, rather than search for the index
char ch = s.charAt(i);
// if it's not a digit
if (!Character.isDigit(ch))
// return it as an upper case letter.
return Character.toUpperCase(ch);
// if it is a digit, you don't need to do anything
// as it will go onto the next index anyway.
}
return -1;
}
注意:您可能希望使用if (!Character.isDigit(ch))
更改if (Character.isLetter(ch))
这是因为有许多字符,例如空格,它们不是数字,也不是字母。