You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java字符串单词计数程序含多空格仍输出正确原因咨询

连续空格场景下单词计数逻辑正常的原因

你提供的代码如下:

public class CountingtheCharactersinString
{
    public static void main(String[] args) 
    {
      String name = "This           is              my  first demo";
      int count = 0;
      boolean b = true;
      for(int i =0; i<name.length(); i++)
      {
          if(name.charAt(i)==' ')   b = true;
          else if(b==true)
          {
              b= false;
              count = count+1;
          }
      }
        System.out.println(count);
    }
}

这段代码本身就是为适配连续空格场景设计的单词计数逻辑,核心依赖布尔变量b作为状态标记实现,和是否仅判断单个空格无关,具体运行逻辑如下:

  • 变量b的含义为「当前是否处于单词分隔状态」,值为true代表上一个遍历到的字符是空格/还未遍历到任何非空格字符
  • 遍历每一个字符时的判断逻辑:
    1. 只要当前字符是空格,就把b设置为true。连续空格场景下,只会反复把已经是true的b重新赋值为true,不会产生其他操作,也不会触发计数
    2. 只有当前字符不是空格,且b为true时,才会触发计数,同时把b设置为false。这一规则保证了一个单词只会在第一个字符的位置被统计一次,单词后续字符不会重复计数
  • 以你给出的示例字符串为例,连续空格只会维持b为true的状态,直到下一个单词的第一个字符出现才会触发一次计数,最终统计得到的单词数5就是正确结果。

内容的提问来源于stack exchange,提问作者Suraj Paudel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:12:00