【LC简单】434. 字符串中的单词数

简介: 【LC简单】434. 字符串中的单词数

题目描述:

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。

请注意,你可以假定字符串里不包括任何不可打印的字符。

示例:

输入: “Hello, my name is John”

输出: 5

解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。

class Solution {
    public int countSegments(String s) {
    }
}

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/number-of-segments-in-a-string

解题思路:

思路一:

首先判断s是否引用了字符串,null的情况直接返回0,不是null则利用trim()方法掉字符串两边的空格,然后统计字符串中空格块的个数(指一个空格或者多个空格连在一起),空格块的个数加1就是字符串中的单词数。

思路二:

首先判断s是否引用了字符串,null的情况直接返回0,不是null则利用trim()方法掉字符串两边的空格,然后再利用split()方法将字符串以空格进行分割放到字符串数组中,统计字符串数组中非空字符串的个数。

注意:

在Java中以空格为分割符完成字符串分割后,若两单词间有 x > 1 个空格,则在单词列表 strings 中,这两个单词间会多出 x − 1 个 “空单词” (即"")。

代码实现:

class Solution {
    //方法一
    public int countSegments(String s) {
        if(s == null) {
            return 0;
        }
        //先去掉字符串俩边的空格
        s = s.trim();
        if(s.length()==0){
            return 0;
        }
        //统计出空格块的个数
        int count = 0;
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) == ' '){
                count++;
                while(i < s.length() && s.charAt(i) == ' '){
                    i++;
                }
            }
        }
        //空格块的个数+1就是字符串数
        return count + 1;
    }
    //方法二
    /*public int countSegments(String s) {
        if(s == null) {
            return 0;
        }
        //先去掉字符串俩边的空格
        s = s.trim();
        if(s.length()==0){
            return 0;
        }
        //以空格将字符串分割
        String[] strings = s.split(" ");
        int count = 0;
        for(int i = 0; i < strings.length; i++) {
            //统计非空字符串的个数
            if(strings[i].length() != 0) {
                count++;
            }
        }
        return count;
    }*/
}

提交结果:73d8c9be8b2a4960a39693770de0ac9a.png

目录
相关文章
|
4天前
leetcode-434:字符串中的单词数
leetcode-434:字符串中的单词数
29 1
|
4天前
【每日一题Day159】LC1638统计只差一个字符的子串数目 | 枚举
【每日一题Day159】LC1638统计只差一个字符的子串数目 | 枚举
20 0
|
7月前
【Leetcode -415.字符串相加 - 434.字符串中的单词数】
【Leetcode -415.字符串相加 - 434.字符串中的单词数】
18 0
|
4天前
【每日一题Day237】LC1375二进制字符串前缀一致的次数 | 技巧题
【每日一题Day237】LC1375二进制字符串前缀一致的次数 | 技巧题
23 1
|
4天前
【每日一题Day233】LC1170比较字符串最小字母出现频次 | 前缀和
【每日一题Day233】LC1170比较字符串最小字母出现频次 | 前缀和
22 0
|
7月前
华为机试HJ1:字符串最后一个单词的长度
华为机试HJ1:字符串最后一个单词的长度
|
11月前
|
Python
统计字符串中不同字符个数问题
统计字符串中不同字符个数问题
74 0
求字符串中大小写字母个数及其他符号个数!
求字符串中大小写字母个数及其他符号个数!
44 0
|
索引
【LC简单】387. 字符串中的第一个唯一字符
【LC简单】387. 字符串中的第一个唯一字符
54 0
【LC简单】387. 字符串中的第一个唯一字符
【LC简单】709. 转换成小写字母
【LC简单】709. 转换成小写字母
81 0
【LC简单】709. 转换成小写字母