如果没有找到,则以s或-1返回大写字母

时间:2016-04-10 14:26:19

标签: java string

所以,在这个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;
} 

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))这是因为有许多字符,例如空格,它们不是数字,也不是字母。