![](/img/trans.png)
[英]Objective-C: Comparing normal strings and strings found in NSMutableArrays
[英]Comparing Strings in Objective-C
我正在为iPhone编写一个小型应用程序,并且试图编写一个函数,该函数将按字母顺序将NSMutableString插入NSArray中。 另外,我还将编写一种排序以对整个数组进行排序。 对于这两种情况,我都想知道比较NSMutableStrings的最佳方法是什么。 我可以使用特定功能吗?
谢谢你的帮助。
我想你在找
(NSComparisonResult)[aString compare: bString];
如果要进行插入排序,则可以使用此方法或相关方法之一。 但是,如果要对NSMutableArray进行一次排序,则可以使用NSMutableArray排序方法之一,例如sortUsingComparator:
如果您在NSString参考中的“识别和比较字符串”下查看,将会找到几个选项。 它们做的事情略有不同,因为您可能想以不同的方式比较字符串(例如,数字是按词汇顺序还是按数字顺序进行比较?)。 最基本的是compare:
—您可以从那里开始,然后根据需要选择一个更复杂的版本。
我认为这应该为您工作。 这是我从链接中得到的答案:
解决方案1:我在这里对其进行了一些修改,以使其更易于处理:
让我们假设String1是一个NSString。
//Though this is a case sensitive comparison of string
BOOL boolVal = [String1 isEqualToString:@"My Default Text"];
//Here is how you can do case insensitive comparison of string:
NSComparisonResult boolVal = [String1 compare:@"My Default Text" options:NSCaseInsensitiveSearch];
if(boolVal == NSOrderedSame)
{
NSLog(@"Strings are same");
}
else
{
NSLog(@"Strings are Different");
}
在这里,如果boolVal是NSOrderedSame,那么您可以说字符串是相同的,否则它们是不同的。
解决方案2:同样,您也觉得这并不容易,您可以在同一链接下参考Macmade的答案 。
希望这对您有所帮助。
用于排序数组
NSArray *sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
试试BOOL ans = [str1 isEqualToString:str2];
试试NSArray
的sortedArrayUsingSelector:
方法:
NSArray * stringArray = [NSArray arrayWithObjects:@"dddsss", @"aada", @"bbb", nil];
[stringArray sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@", [stringArray sortedArrayUsingSelector:@selector(compare:)]);
输出:
(
aada,
bbb,
dddsss
)
此外,您可以使用NSSortDescriptor
来确定ASC或DESC顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.