计算最后一个单词的长度

题目要求是返回最后一个单词的长度,那么这里这里可以直接从输入字符串的最后一个下标开始遍历。定义一个int变量记录最后一个单词的长度用来返回结果,因为字符串可能是以空格结尾的,所以遍历时只有遇到不是空格的字符时才开始计数。判断字符串中的字符是否是空格可以用Character类提供的静态方法isWhitespace(char c)来判断,当字符是空格时会返回true。当开始计数之后,如果当前遍历到的字符的下一个为空格时应该break退出循环,说明已经遍历完最后一个单词了。另外应当注意,如果输入的字符串中只有一个单词并且单词的开头第一个字符前面没有空格,这时再去判断当前字符前面的字符是否是空格会造成下标越界。因此,当当前字符串下标已经到达0时应当break循环。

public class CountWord {
    public static void main(String[] args) {
        System.out.println(lengthOfLastWord("aa ss girlfridend"));
    }

    public static int lengthOfLastWord(String s) {
        int result = 0; //记录最后一个单词的长度
        //从字符串最后下标开始遍历
        for (int i = s.length() - 1; i > -1; i--) {
            boolean isWhitespace = Character.isWhitespace(s.charAt(i));
            if (!isWhitespace) {
                result++;
                //当i等于0的时候就不需要判断前面是否有空格了,此时应当break循环否则会出现下标越界
                //当当前字符前一个字符为空格时也应该break
                if (i == 0 || Character.isWhitespace(s.charAt(i - 1)))
                    break;
            }

        }
        return result;


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值