2014-02-19 268 views
0

我想解析一个奇怪的方式NSString,我无法弄清楚如何做到这一点(但我怀疑它会需要正则表达式)。我有一个NSString,其中包含一些没有空白的文本,例如:“Thisisatest”。我需要将这个文本解析为一系列两个字符,最好放到NSCountedSet中,因为我需要它们出现的次数。在上面的字符串中,输出将是:Th-1,hi-1,is-2,si-1,sa-1,at-1,te-1,es-1,st-1。我最终需要为三个角色(Thi-1,他的-1,isi-1,...)和一组四个角色(This-1,hisi-1,...)组成一组。能够设置是否忽略大小写会是奖金。非常感谢!字符串解析多个字符

+3

听起来不错。马上行动,做到这一点。问题是什么? – matt

+2

只需通过它们的NSRange('substringWithRange:')来拾取子字符串即可。我不明白正则表达式是如何涉及的。这纯粹是蛮力。 – matt

+0

您可能还会发现['NSScanner'](https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSScanner_Class/Reference/Reference.html)可用于此任务。 – user1118321

回答

0

没关系。经过多次试验和错误,我得到了这个工作:

NSCountedSet *digraphSet = [NSCountedSet set]; 

for (NSUInteger n = 0; n <= [text length]; n++) 
{ 
    NSRange range; 
    range.location = n; 
    range.length = 2; 

    if (n + 2 <= [text length]) 
    { 
     [digraphsSet addObject:[text substringWithRange:range]]; 
    } 
} 
+0

我看不出涉及到试验和错误。你所做的正是我在评论中所描述的 - 三天前。 – matt