【问题标题】:create an NSArray of substrings from a NSString [closed]从 NSString 创建子字符串的 NSArray [关闭]
【发布时间】:2013-12-05 20:16:57
【问题描述】:

我有一个包含数字和字符的NSString。我想知道制作 NSStringsNSArray 的最佳方法,每个包含来自主字符串的 2 个字符。

例如,如果原来的 NSString 看起来像这样

AFC23S4QL0

你的 NSArray 子字符串看起来像这样

ARRAY {
  AF,
  C2,
  3S,
  4Q,
  L0 
}

【问题讨论】:

  • 在什么意义上最好的方式?很少的代码行?快速执行? (对于短字符串还是大字符串?)可读性?
  • 如果这会给您带来问题,您真的应该看看NSString 方法,因为这只是一个简单的循环......
  • 您有问题吗?你不能只编码吗?这里有什么要问的??
  • 你真的尝试过什么吗?

标签: ios objective-c nsstring nsmutablearray nsarray


【解决方案1】:

您可以为此使用substringWithRange:

NSString *subStr = @"";
int strLen = [yourString length];
BOOL flag = (strLen %2 == 0) ? YES : NO;
for (int index = 0; index < strLen; index+=2)
{
    if((strLen-1 == index) && !flag)
    {
       subStr = [yourString substringWithRange:NSMakeRange(index, 1)];
    }
    else
    {
        subStr = [yourString substringWithRange:NSMakeRange(index, 2)];
    }
    [yourArray addObject:subStr];
}

【讨论】:

  • @RichTolley 不应该。
  • @Midhun - 您的更新不正确,将会崩溃。您希望 index &lt; strLen 在循环中,而 if 将是 index == strLen - 1 &amp;&amp; !flag
  • @rmaddy:我刚改成这个int strLen = [yourString length]-2;。我觉得现在可以了,我现在没有mac机器,否则我会检查它
  • 就像一个魅力。非常感谢你。我以前使用过 NSRange,但只是为了提取奇异值。我不知道如何将它与多个项目合并。
  • 如果原始字符串为 1 个字符,则会失败。
猜你喜欢
  • 2012-11-05
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
  • 2010-11-06
  • 2013-02-27
  • 1970-01-01
相关资源
最近更新 更多