Q:
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string. If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example, Given s = "Hello World" ,return 5
A:
以“Hello[space]World[space][space]”为例:
第一个while先判断出了这里有两个空格,length of str缩减了两个,现在对s.charAt(index)
来说已经指向了字母“d”,判断 s.charAt(len-1) != ' '
,累加lastLength,然后length of str继续缩减,直到指向了第一个[space],第二个while也结束了,返回lastLength结果。
public int lengthOfLastWord(String s) {
int len=s.length(), lastLength=0;
while(len > 0 && s.charAt(len-1)==' '){ //处理字符串结尾还有空格的情况
len--;
}
while(len > 0 && s.charAt(len-1)!=' '){
lastLength++;
len--;
}
return lastLength;
}
```
----
>**java.lang.String.charAt() **方法返回指定索引处的char值。索引范围是从0到length() - 1。
声明: `public char charAt (int index)`
此方法返回这个字符串的指定索引处的char值。第一个char值的索引为0.
**IndexOutOfBoundsException** -- 如果index参数为负或不小于该字符串的长度.