删除一次角色

时间:2014-01-27 09:45:23

标签: ios objective-c nsstring

我有一个字符串

  NSString *str = @"[\"a\" : \"b\" , \"c\" : \"d\", \"e\" : \"f\" ,]" ;

我只想删除逗号(,),即如果字符串只在字符串的末尾有逗号,则应替换为像@“”这样的空白字符。如果逗号出现在字符串的开头或中间,则不应删除它。所以最后的字符串应该是

 ["a" : "b" , "c" : "d", "e" : "f"] 

而不是

 ["a" : "b" , "c" : "d", "e" : "f",] 

3 个答案:

答案 0 :(得分:5)

我不知道我完全理解你想要做什么但是从你的例子中你想要删除最后来的。如果最后总是关闭括号']',你可以使用;

str = [str stringByReplacingOccurrencesOfString:@" ,]" withString:@"]"];

希望这就是你所追求的。

答案 1 :(得分:0)

NSString *string = @"[\"a\" : \"b\" , \"c\" : \"d\", \"e\" : \"f\" ,]";

int index = string.length - 1;

while (index-- >= 0) {

    if ([string characterAtIndex:index] == ',')
        break;
}

string = [string stringByReplacingCharactersInRange:NSMakeRange(index, 1) withString:@""];

NSLog(@"String %@", string); // String ["a" : "b" , "c" : "d", "e" : "f" ]

答案 2 :(得分:0)

简单的技巧..它工作得很好..

   NSMutableArray *subStr = [NSMutableArray arrayWithArray:[str componentsSeparatedByString:@","]];
   NSString *lastString = [subStr lastObject];
  [subStr removeObject:lastString];
   NSString *finalStrin = [NSString stringWithFormat:@"%@%@",[subStr componentsJoinedByString:@","],lastString];