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

Java:如何统计字符串首个非空白字符前的空格与制表符数量

Java实现统计字符串开头的空格与制表符数量

针对你给出的示例字符串String line = " Java is good."(开头含8个空格),这里提供两种实用的实现方式,可准确统计首个非空白字符前的空格和制表符数量:

方法一:循环遍历字符(高效直观)

通过逐个遍历字符串开头的字符,判断是否为空格或制表符,遇到第一个非目标字符就终止循环:

public class LeadingWhitespaceCounter {
    public static void main(String[] args) {
        String line = "        Java is good.";
        int count = 0;
        for (int i = 0; i < line.length(); i++) {
            char currentChar = line.charAt(i);
            if (currentChar == ' ' || currentChar == '\t') {
                count++;
            } else {
                break;
            }
        }
        System.out.println("开头的空格/制表符数量:" + count); // 输出:8
    }
}

这种方法无需遍历整个字符串,找到有效字符就停止,处理长字符串时效率更高。

方法二:正则表达式匹配(简洁灵活)

用正则匹配字符串开头连续的空格和制表符,通过匹配结果的长度得到计数:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class LeadingWhitespaceCounter {
    public static void main(String[] args) {
        String line = "        Java is good.";
        Pattern pattern = Pattern.compile("^[ \\t]+");
        Matcher matcher = pattern.matcher(line);
        
        int count = 0;
        if (matcher.find()) {
            count = matcher.group().length();
        }
        System.out.println("开头的空格/制表符数量:" + count); // 输出:8
    }
}

正则^[ \\t]+的含义:

  • ^:匹配字符串起始位置
  • [ \\t]:匹配空格或制表符
  • +:匹配至少一个连续的目标字符

如果字符串开头无空格/制表符,count会保持为0,兼容性强。

内容的提问来源于stack exchange,提问作者John Hswson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:01:09