将字符串与数值进行比较

时间:2014-06-05 08:29:47

标签: objective-c

我已经搜索了几个小时如何比较这两个字符串(并且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)。

2 个答案:

答案 0 :(得分:1)

您实际上只回答了自己的问题 - 使用NSDecimalNumber根据当前区域设置解析用户的输入。使用您的语言环境解析您的字符串(或者更好地将其保留为浮点值。这应该解决您的问题,除了标准问题之外,不建议比较浮点值以确保完全相等,但NSDecimalNumber可以帮助您解决那个.HPH

答案 1 :(得分:0)

如果您可以信任计算机上用户的区域设置,则可以使用NSScanner实例扫描数字字符串,并使用float或double作为模型,以便您可以执行正确的搜索。