我已经搜索了几个小时如何比较这两个字符串(并且str1等于str2 == YES):
此字符串由我的界面(搜索栏)中的用户输入提供
NSString *str1 = @"11,2";
此字符串是我的模型对象的属性
NSString *str2 = @"11.2";
我测试了这个,但它无法正常工作
if ([str1 rangeOfString:str2 options:options range:NSMakeRange(0, [str1 length]) locale:[NSLocale currentLocale]].location == NSNotFound
Witch是比较两个NSStrings的最佳解决方案,并且str1
等于str2
,返回YES?
编辑:
我知道我可以简单地通过替换"," by"。"并且做了比较,但我正在寻找一个优雅的解决方案,其中11.2和11,2在不同的语言环境中是相同的(例如,使用NSDecimalNumber
)。
答案 0 :(得分:1)
您实际上只回答了自己的问题 - 使用NSDecimalNumber
根据当前区域设置解析用户的输入。使用您的语言环境解析您的字符串(或者更好地将其保留为浮点值。这应该解决您的问题,除了标准问题之外,不建议比较浮点值以确保完全相等,但NSDecimalNumber
可以帮助您解决那个.HPH
答案 1 :(得分:0)
如果您可以信任计算机上用户的区域设置,则可以使用NSScanner
实例扫描数字字符串,并使用float或double作为模型,以便您可以执行正确的搜索。