434. Number of Segments in a String

Count the number of segments in a string,where a segment is defined to be a contiguous sequence of non-space characters.

Please note that the string does notcontain any non-printable characters.

 Example:

 Input: "Hello, my name is John"

Output: 5

    翻译:计算字符串中段的数量,其中段被定义为非空格字符的连续序列。请注意,字符串不包含任何不可打印的字符。

    分析:看到题目的第一眼就是想到String的split方法,根据匹配给定的正则表达式来拆分此字符串。trim()返回字符串的副本,忽略前导空白和尾部空白。但是一直没写对,看了一下别人的正则表达式。第二种方法比较常规化,但是有一个判断条件就是i==0,这个需要注意,防止数组下标越界。具体代码如下:

public class Solution {

   public int countSegments(String s) {

       /*String trimmed = s.trim();

       if(trimmed.length()==0)

           return 0;

       else

           return trimmed.split("\\s+").length;*/

           int res=0;

            for(int i=0; i<s.length(); i++)

           if(s.charAt(i)!=' ' && (i==0 || s.charAt(i-1)==' '))

           res++;       

           return res;

    }

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值