58.Length of Last Word
题意: 给一个字符串,这个字符串包括大小写字母和空格,返回这个字符串的最后一个单词的长度。如果最后一个单词不存在,则返回0.
一个单词是指没有空格的字母串。
For example,
Given s = “Hello World”,
return 5.
我的思路:
这个题很简单,如果输入字符串为空,则返回0;
如果不为空,从最后一位向前数,一直到空格为止的长度就是字符串中最后一个单词的长度;但是这里要考虑一种情况就是字符串末尾是空格,这样要往前推,找到单词的位置。
public int lengthOfLastWord(String s) {
int count = 0;
if(s.length() == 0){
return 0;
}
else{
for(int i = s.length() - 1; i >= 0; i--){
if(s.charAt(i) != ' '){
count++;
}
else{
if(count > 0){
break;
}
}
}
return count;
}
}
第二种方法: 用到了Java中String类的方法
s.trim();去掉字符串首位的空格;
s.trim().lastIndexOf(” “);返回字符串中最后一个空格的索引,若果没有,则返回-1;
public int lengthOfLastWord2(String s) {
s = s.trim();
int lastIndex = s.lastIndexOf(' ') + 1;
return s.length() - lastIndex;
}
第三种写法: 第二种写法的简洁版,看着好牛。
public int lengthOfLastWord1(String s) {
return s.trim().length()-s.trim().lastIndexOf(" ")-1;
}