我正在为iphone编写一个小应用程序,我正在尝试编写一个函数,它将按字母顺序将NSMutableString插入NSArray。此外,我还将编写一个排序来整理整个数组。对于这两种情况,我想知道比较NSMutableStrings的最佳方法是什么。我可以使用特定的功能吗?
感谢您的帮助。
答案 0 :(得分:4)
我认为你正在寻找
(NSComparisonResult)[aString compare: bString];
如果您正在进行插入排序,则可以使用此方法或其中一种相关方法。但是,如果要对NSMutableArray进行一次性排序,则可以使用NSMutableArray排序方法之一,例如sortUsingComparator:
。
答案 1 :(得分:2)
如果你看"Identifying and comparing strings" in the NSString reference下,你会发现几个选项。它们的功能略有不同,因为您可能希望以不同的方式比较字符串(例如,数字是按词汇顺序还是按数字顺序进行比较?)。最基本的是compare:
- 您可以从那里开始并根据需要选择更复杂的版本。
答案 2 :(得分:2)
我认为这对你有用。这是我从链接中得到的答案:
SOLUTION-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的回答。
希望这会对你有所帮助。
答案 3 :(得分:2)
用于排序数组
NSArray *sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
答案 4 :(得分:1)
尝试BOOL ans = [str1 isEqualToString:str2];
答案 5 :(得分:1)
尝试NSArray
的{{1}}方法:
sortedArrayUsingSelector:
Out put:
NSArray * stringArray = [NSArray arrayWithObjects:@"dddsss", @"aada", @"bbb", nil];
[stringArray sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@", [stringArray sortedArrayUsingSelector:@selector(compare:)]);
此外,您可以使用(
aada,
bbb,
dddsss
)
来决定ASC或DESC顺序。