Java教程

LeetCode——434. 字符串中的单词数(Java)

本文主要是介绍LeetCode——434. 字符串中的单词数(Java),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目描述

题干:
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。

示例:
输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。

题解思路

返回字符串中的单词数,这里注意逗号分割的并不一定是单词

所以很多“优质”的测试用例会让你很多方法失败,比如我一开始想到用split

但是你会发现很多测试用例用空格隔开的根本不是单词所以要根据用例进行增加限制语句

正确代码

    public int countSegments(String s) {
        int ans = 0;

        for (int i = 0; i < s.length(); i++) {
            if ((i == 0 || s.charAt(i - 1) == ' ') && s.charAt(i) != ' ') {
                ans++;
            }
        }
        return ans;
    }

总结

这里总结一下String判断是否为空的几种写法
  • string == null && "".equal(string)

  • string == null && string.length() == 0

  • string == null && string.isEmpty()

  • string == null && string == ""

    顺道提一下isBlank与isEmply,isBlank相比后者增加了判空的范围

    除了为null或长度为0,制表符、空格等空白符(whitespace)都会判为true

    如果文章存在问题或者有更好的题解,欢迎在评论区斧正和评论,各自努力,你我最高处见

这篇关于LeetCode——434. 字符串中的单词数(Java)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!