【问题标题】:Remove a character once删除一个字符一次
【发布时间】:2014-01-27 09:45:23
【问题描述】:

我有一个字符串

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

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

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

而不是

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

【问题讨论】:

  • 没有“空白字符”。你的意思是空字符串吗?此外,如果逗号出现在字符串末尾的“]”之前,是否删除逗号的真正规范?
  • 哪一部分这么难?您所要做的就是将冒号分隔的元素保存在数组中。

标签: ios objective-c nsstring


【解决方案1】:

我不知道我完全理解你想要做什么,但从你的例子中你想删除 last come。如果末尾总是有右括号']',您可以使用;

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

希望这就是你所追求的。

【讨论】:

    【解决方案2】:
    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" ]
    

    【讨论】:

      【解决方案3】:

      简单的技巧..它工作正常..

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-24
        • 2023-03-14
        相关资源
        最近更新 更多