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

如何用p5.js统计TXT文件中的段落数量

用p5.js识别TXT文件中的空行分隔段落并统计数量

核心思路

段落之间以整行空行分隔时,不能只检测空格,要针对「整行是否为空白(包含换行、空格、制表符等)」来判断,核心是区分「段落内的行」和「分隔用的空行」。

方法一:逐行遍历判断(直观易理解)

用loadStrings()读取文件,它会把文本按行拆成数组。遍历每一行,通过状态标记来统计段落数:

function setup() {
  noCanvas();
  // 替换成你的TXT文件路径
  loadStrings('lorem.txt', processText);
}

function processText(lines) {
  let paragraphCount = 0;
  let inParagraph = false; // 标记是否处于某个段落中

  for (let line of lines) {
    // 去掉行首尾所有空白字符(空格、换行、制表符等)
    const trimmedLine = line.trim();
    if (trimmedLine !== '') {
      // 当前行非空,且之前不在段落中 → 新段落开始
      if (!inParagraph) {
        paragraphCount++;
        inParagraph = true;
      }
    } else {
      // 当前行是空行 → 退出段落状态
      inParagraph = false;
    }
  }

  console.log(`段落总数:${paragraphCount}`);
}

方法二:正则分割(简洁高效)

把文本合并后,用正则匹配段落间的空行进行分割,再过滤无效元素:

function setup() {
  noCanvas();
  loadStrings('lorem.txt', processText);
}

function processText(lines) {
  // 将行数组还原为完整文本
  const fullText = lines.join('\n');
  // 正则匹配:一个或多个空行(空行可包含任意空白字符)
  const paragraphs = fullText.split(/\s*\n\s*\n+/);
  // 过滤掉文本首尾可能出现的空段落
  const validParagraphs = paragraphs.filter(p => p.trim() !== '');
  
  console.log(`段落总数:${validParagraphs.length}`);
}

为什么检测「至少两个空格」不可行?

段落之间是整行空行,不是行内的空格,而且空行可能包含换行符、制表符等空白字符,单纯检测空格无法覆盖所有空行情况,自然得不到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:00:49