作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在某些情况下,我可能有一个包含多个单词的 NSString,其中一些是重复的。我想要做的是采用如下所示的字符串:
One Two Three Three Three Two Two Two One One Two Three
让它看起来像:
One Two Three
有时原始 NSString 的确切长度也可能不同。到目前为止我所拥有的是:
NSString *hereitis = @"First Second Third Second Third First First First";
NSArray *words = [hereitis componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSCountedSet *countedSet = [NSCountedSet setWithArray:words];
NSMutableArray *finalArray = [NSMutableArray arrayWithCapacity:[words count]];
for(id obj in countedSet) {
if([countedSet countForObject:obj] == 1) {
[finalArray addObject:obj];
}
}
NSString *string = [finalArray componentsJoinedByString:@" "];
NSLog(@"String%@", string);
然而,这只是返回数组中的字符串,而不是任何单词。
最佳答案
这实际上可以轻松地完成。 NSSet 不允许重复条目。因此,您可以将字符串分解为一个数组,并使用该数组创建集合。从那里开始,您所要做的就是转换回来,然后删除复制品。
NSString *inputString = @"One Two Three Three Three Two Two Two One One Two Three";
NSSet *aSet = [NSSet setWithArray:[inputString componentsSeparatedByString:@" "]];
NSString *outputString = [aSet.allObjects componentsJoinedByString:@" "];
NSLog(@"___%@___",outputString); // Outputs "___One Two Three___"
关于ios - 从 NSString 中删除重复的单词并另存为新的 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24436806/
我有 json 数据: { "products": [ { "productId" : 0, "productImg" : "../img/product-ph
我是一名优秀的程序员,十分优秀!