题目:
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-segments-in-a-string
一开始用了split得到数组的方式,自己又想到了空格变成多个的情况,感觉不对
emmm然后想到了遍历string
class Solution { public int countSegments(String s) { int res = 0; boolean flag = false; // 是空的 if (s != null && s.trim().length() > 0) { for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); // 不为空 if (String.valueOf(c) != null && (c + "").trim().length() > 0 ) { // 原来为空 if (!flag ) { res++; } flag = true; } else { flag = false; } } } return res; } }
这种方法好慢:
后来看到题解中还是有人用split了,然后再遍历一次,将是空格的去掉,那时候的空格肯定都会是 " "
class Solution { public int countSegments(String s) { String[] arr = s.split(" "); int len = 0; for (String t : arr) { if (t.equals(" ") || t.isEmpty()){ continue; } len++; } return len; } }