-1

我正在尝试将 NSString 中的月份名称替换为其两位数字值的名称,例如“January”=>“01”、“February”=>“02”。我使用的方法如下:

if (mois==@"january") { mois=@"01";}   
if (mois==@"February") { mois=@"02";}

...但它不工作。我该如何进行这个替换?

4

6 回答 6

7

if ([mois isEqualToString:@"january"])就是你要找的。

您所做的是比较指针而不是存储在其中的值,这就是为什么 Objective-C 中的几个类都有这些isEqualTo:方法的原因。

于 2012-06-19T12:03:22.543 回答
2

用这个

if ([mois isEqualToString:@"january"]) { mois=@"01";}   
if ([mois isEqualToString:@"February"]) { mois=@"02";}
于 2012-06-19T12:04:17.363 回答
1

你应该试试[mois isEqualToString:@"january"]

于 2012-06-19T12:03:46.790 回答
0

使用 iOS 提供的 Date 函数。看看 NSDate 和 NSDateFormatter

通过使用日期函数,您可以让 SDK 将月份名称转换为月份代码。这也意味着您不必担心月份是否使用不同的语言或大小写不同,或者是否使用“Jan”而不是“January”等。

于 2012-06-19T12:04:13.293 回答
0

NSString 是一个对象,因此你不能使用 mois==@"january"。您必须使用方法 isEqualToString:(NSString *)aString。

尼古拉。

于 2012-06-19T12:19:28.150 回答
-1

NSStrings 是不可变的,不是吗?我认为您要么必须使用 NSMutableString,要么使用 mois=[NSString stringWithString:@"01"];

希望这会有所帮助,内森

于 2012-06-19T12:05:45.460 回答