[LeetCode] #58 最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词之间用单个或多个连续的空格字符隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

输入:s = "Hello World"

输出:5

先切割,再看最后一个字符串的长度

class Solution {
    public int lengthOfLastWord(String s) {
        String ss[] = s.split("\\s+");
        return ss.length == 0 ? 0 : ss[ss.length - 1].length();
    }
}

另一种方法,从字符串后面开始找空格

class Solution {
    public int lengthOfLastWord(String s) {
        int count = 0;
        for (int i = s.length() - 1; i >= 0; i--)
        {
            if (s.charAt(i) != ' ') count++; 
            if (s.charAt(i) == ' ' && count != 0) break;
        }
        return count;
    }
}

知识点:

public String[] split(String regex, int limit)

public String[] split(String regex)

split() 方法根据匹配给定的正则表达式来拆分字符串。

注意: . 、 | 和 * 等转义字符,必须得加 \\。

注意:多个分隔符,可以用 | 作为连字符。

regex -- 正则表达式分隔符。

limit -- 分割的份数。

总结:遍历时,正着来不行就倒着来。