在Objective-C中将单个字符串分成两个不同的字符串

时间:2011-09-20 13:23:43

标签: iphone objective-c ios string nsstring

我刚开始使用Objective-C和iphone app dev,我正在尝试设计一个计算器应用程序,我使用的逻辑是这样的: 当用户点击任何按钮时,我按下按钮的标题 [sender titleForState:UIControlStateNormal]方法然后继续将其附加到字符串(NSString * result)。 说用户输入123 + 456,然后在我的字符串中我将有“123 + 456”,现在我想要两个字符串“123”和“456”,这样我就可以通过[result intValue]方法添加它们。

所以我的问题是,如何获得这两个单独的字符串(“123”和“456”)?

使用合适方法的示例代码非常有用。

4 个答案:

答案 0 :(得分:13)

NSString * mystring = @"123+456";
NSArray * array = [mystring componentsSeparatedByString:@"+"];
NSString * str1 = [array objectAtIndex:0]; //123
NSString * str2 = [array objectAtIndex:1]; //456

答案 1 :(得分:2)

NSString tokenize in Objective-C

找到了这个

http://borkware.com/quickies/one?topic=NSString(有用的链接)找到了这个:

NSString *string = @"oop:ack:bork:greeble:ponies";
NSArray *chunks = [string componentsSeparatedByString: @":"];

希望这有帮助!

亚当

NSString *string = @"123+456";
NSArray *chunks = [string componentsSeparatedByString: @"+"];

int res = [[chunks objectAtIndex:0] intValue]+[[chunks objectAtIndex:1] intValue];

答案 2 :(得分:1)

NSArray* yourTwoStrings = [@"123+456" componentsSeparatedByString:@"+"];

答案 3 :(得分:1)

您可以使用NSString s componentsSeparatedByString:

分隔字符串
NSString *calculation = @"1235+4362";
NSArray *results = [calculation componentsSeparatedByString:@"+"];

NSLog(@"Results: %@", results);

如果您尝试实施计算器,可能需要熟悉Reverse Polish NotationShunting-Yard Algorithm,因为您会发现尝试创建一个简单的计算器会比预期更具挑战性。