我有以下字符串;
key = value = 123
我想将此字符串拆分为两个字符串"key"
和"value = 123"
。这样做的最佳方式是什么?
我正在考虑使用componentsSeparatedByString
按“=”然后合并最后两个组件,但对我来说,"key ="
是固定的,但右侧可以是任何值,如"value1 = 123, value2 = 123"
所以我不能用这种方法。
基本上,如果有一个很好的方法可以获得key
(所有字符在first = sign之前),并且在first = sign之后剩下的是value
,那么它将非常有用。
答案 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_int
和value = 17477575
答案 2 :(得分:0)
你的解释非常令人困惑。 如果您只想将值与value = 123分开,请使用commentsSeperatedByString然后 NSString * newString = [NSString stringWithFormat“@”%@ =%@“,string1,string2];