给你一个字符串 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 -- 分割的份数。
总结:遍历时,正着来不行就倒着来。