• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

计算文本字符串的单词

用户头像
it1352
帮助1

问题说明

在iOS上,如何计算特定文本字符串中的单词?

On iOS, how can I count words within a specific text string?

正确答案

#1

比分割更有效的方法是逐字符检查字符串。

A more efficient method than splitting is to check the string character by character.

int word_count(NSString* s) {
  CFCharacterSetRef alpha = CFCharacterSetGetPredefined(kCFCharacterSetAlphaNumeric);
  CFStringInlineBuffer buf;
  CFIndex len = CFStringGetLength((CFStringRef)s);
  CFStringInitInlineBuffer((CFStringRef)s, &buf, CFRangeMake(0, len));
  UniChar c;
  CFIndex i = 0;
  int word_count = 0;
  Boolean was_alpha = false, is_alpha;
  while (c = CFStringGetCharacterFromInlineBuffer(&buf, i  )) {
    is_alpha = CFCharacterSetIsCharacterMember(alpha, c);
    if (!is_alpha && was_alpha)
         word_count;
    was_alpha = is_alpha;
  }
  if (is_alpha)
       word_count;
  return word_count;
}

@ ennuikiller的解决方案,计算一个1,000,000字的字符串:

Compared with @ennuikiller's solution, counting a 1,000,000-word string takes:

    • 0.19秒构建字符串
    • 0.39秒构建字符串 使用我的方法计数。
    • 1.34秒使用ennuikiller的方法构建字符串 计数。

我的方法的一大缺点是它不是一个 - 班轮。

The big disadvantage of my method is that it's not a one-liner.

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tanhcfjgkb
系列文章
更多 icon
同类精品
更多 icon
继续加载