✨博客主页: XIN-XIANG荣
✨系列专栏:【LeetCode/牛客刷题】
✨一句短话: 难在坚持,贵在坚持,成在坚持!
题目描述:
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: “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;
}*/
}
提交结果:
本文含有隐藏内容,请 开通VIP 后查看