题目:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
方法一:我们可以可以使用charAt()方法取出字符串中每一字符,因为是求最后一位单词的长度,所以我们可以逆序取出字符串中的字符,当遇到字符不为空格时进行计数,再判断i - 1 是否小于0,如果小于0就可以直接返回长度了,当大于0时说明此时前面还有值,再判断i - 1上是否位空格,如果也为空格说明此时最后单词的字符遍历完毕可以返回长度了,如果不是空格继续遍历
int index = 0;
for(int i = s.length() - 1;i >= 0;i --){
if(s.charAt(i) != ' '){
index += 1;
if(i - 1 < 0){
return index;
}
if(s.charAt(i - 1) == ' '){
System.out.println(index);
return index;
}
}
}
return index;//这个字符都是空格的情况返回值
方法二:用java的split()方法
String str = " fly me to the moon ";
String[] s = str.split(" ");
System.out.println(s[s.length - 1].length());
下图位split()方法源码的部分截图:我们只看这些内容就够了,我们不需要知道这个方法是如何运行的,我们只关心这个方法需要啥参数,返回啥类型
通过图我们可知:返回的类型是一个字符串类型的数组,参数是一个字符串 返回的是一个分割后的一维字符串数组 参数是分割标志的字符串