给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: "Hello World"
输出: 5
从字符串结尾开始遍历,遇到第一个非空字符说明已经遍历到最后一个单词的结尾,设置开始标志,统计长度,下一次遇到空字符说明已经遍历到最后一个单词的开头,直接跳出循环,返回长度。
public static int lengthOfLastWord(String s) {
boolean begin = false;
int len = 0;
for (int i = s.length() - 1; i >= 0 ; i--) {
if (" ".equals(String.valueOf(s.charAt(i)))) {
if (begin) {
break;
}
} else {
begin = true;
len++;
}
}
return len;
}
或者可以用正则表达式分离
public static int lengthOfLastWord(String s) {
String[] arr = s.split(" +");
return arr.length == 0 ? 0 : arr[arr.length - 1].length();
}