0

我有以下字符串;

    key = value = 123

我想把这个字符串分成两个字符串"key""value = 123". 做这个的最好方式是什么?

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

基本上,如果有一种很好的方法来获取key(第一个 = 符号之前的所有字符)和第一个 = 符号之后的所有字符,value那么它会非常有帮助。

4

3 回答 3

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".

于 2012-11-20T15:25:08.490 回答
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

于 2012-11-20T14:43:00.970 回答
0

你的解释很混乱。如果您只想将 key 与 value = 123 分开,请使用 commentsSeperatedByString 然后 NSString *newString = [NSString stringWithFormat"@"%@ = %@", string1, string2];

于 2012-11-20T14:43:58.593 回答