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
相关产品推荐
相关产品推荐

