【发布时间】:2014-06-05 08:29:46
【问题描述】:
我已经搜索了很多小时如何比较这两个字符串(并且 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 是比较两个 NSString 并让 str1 等于 str2 返回 YES 的最佳解决方案?
编辑:
我知道我只需将“,”替换为“。”即可。并进行比较,但我正在寻找一个优雅的解决方案,即 11.2 和 11,2 在不同的语言环境中是相同的(例如使用NSDecimalNumber)。
【问题讨论】:
-
为什么不将 , 替换为 .然后比较?
-
感谢您的评论,但我不喜欢这个解决方案。问题是我的模型对象中的值可以等于:11,2,输入可以是 11.2
-
您能否澄清一下,如果两个字符串的区别仅在于一个具有
,而另一个具有.或反之亦然(以及任意数量的'' s 或.可能会出现? -
对不起,我不明白你的评论。 (1.2 等于 1,2),( 2.1 不等于 1.2)(2.1 不等于 1,2)....简单的数字比较与“。” == ","
-
如果值实际上是数字,请使用 NSNumber 存储或使用它们...或围绕 NSNumberFormatter 构建解决方案...
标签: objective-c