java练习

    技术2025-06-01  19

    最后一个单词的长度

    题目: 最后一个单词的长度:给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 例: 输入: “Hello World” 输出: 5

    说明: 一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。 题目分析: 题目最有意思的就是:结尾处仍然可能有空格。所以一般的解题思路为,先去掉末尾的空格,然后从尾向前开始遍历,直到遇到第一个空格处结束。但这里可以取一个巧,我们可以通过一个 count 来记数,从第一个不为空格的数开始记起。换句话说,如果末尾处为空格,此时 count 值为 0,可以直接略过。 代码:

    public class zhdcd{ public int length (String s) { if(s == null || s.length() == 0) return 0; int count = 0; for(int i = s.length()-1; i >= 0; i--){ if(s.charAt(i) == ' '){ if(count == 0) continue; break; } count++; } return count; } }

    当然,我还可以使用API中的简单的方法:

    public class zhdcd{ public int length (String s) { s = s.trim(); int start = s.lastIndexOf(" ") + 1; return s.substring(start).length(); } }

    首先 trim 掉两边的空格,然后直接定位到最后一个单词的位置,将其截取下来获取长度。

    还可以在使用其他有意思的:

    public class zhdcd{ public int length(String s) { String[] words = s.split(" "); if (words.length < 1) return 0; return words[words.length-1].length(); } }

    直接使用 split 得到最后一个单词的长度。

    Processed: 0.012, SQL: 9