iOS:拆分键 - 由NSString的等号连接的值

时间:2012-11-20 14:34:47

标签: ios nsstring split

我有以下字符串;

    key = value = 123

我想将此字符串拆分为两个字符串"key""value = 123"。这样做的最佳方式是什么?

我正在考虑使用componentsSeparatedByString按“=”然后合并最后两个组件,但对我来说,"key ="是固定的,但右侧可以是任何值,如"value1 = 123, value2 = 123"所以我不能用这种方法。

基本上,如果有一个很好的方法可以获得key(所有字符在first = sign之前),并且在first = sign之后剩下的是value,那么它将非常有用。

3 个答案:

答案 0 :(得分:1)

使用NSScanner!

       NSString *key, *value;
       NSScanner *scanner = [NSScanner scannerWithString:yourstring];
       [scanner scanUpToString:@"=" intoString:&key];
       [scanner scanString:@"=" intoString:nil];
       value = [yourstring substringFromIndex:scanner.scanLocation];

       key = [key stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
       value = [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

字符串"key = value1 = 123, value2 = 456"会产生key = "key"value = "value1 = 123, value2 = 456".

答案 1 :(得分:0)

我不确定我是否完全理解你的问题?以下代码将获取密钥,无论它是什么,然后从原始字符串中删除该密钥以获取值。

NSString *strKeyKalue = @"key = value = 123";
NSArray *aryKeyValue = [strKeyKalue componentsSeparatedByString:@" = "];
NSString *key = [aryKeyValue objectAtIndex:0];
NSString *values = [strKeyValue substringFromIndex:[key length] + 3]; // Remember ' = '

因此max_int = 17477575会产生key = max_intvalue = 17477575

答案 2 :(得分:0)

你的解释非常令人困惑。 如果您只想将值与value = 123分开,请使用commentsSeperatedByString然后 NSString * newString = [NSString stringWithFormat“@”%@ =%@“,string1,string2];