ios中带逗号的字符串的开头和结尾

ios中带逗号的字符串的开头和结尾,ios,nsstring,Ios,Nsstring,我需要检查字符串的开头和结尾是否包含任何逗号,并删除该逗号或用空字符串替换这些逗号 比如说, NSString *str1 = @",a,b,c,d,"; or NSString *str1 = @",a,b,c,d"; or NSString *str1 = @"a,b,c,d,"; 输出: NSString *str1 = @"a,b,c,d"; 我试过这个 NSRange lastComma = [str1 rangeOfString:@"," options:NSBackward

我需要检查字符串的开头和结尾是否包含任何逗号,并删除该逗号或用空字符串替换这些逗号

比如说,

NSString *str1 = @",a,b,c,d,"; or

NSString *str1 = @",a,b,c,d"; or

NSString *str1 = @"a,b,c,d,";
输出:

NSString *str1 = @"a,b,c,d";
我试过这个

NSRange lastComma = [str1 rangeOfString:@"," options:NSBackwardsSearch];

        if(lastComma.location != NSNotFound) {
            str1 = [str1 stringByReplacingCharactersInRange:lastComma
                                                     withString: @""];
        }
删除最后一个逗号,但如何删除第一个逗号


有什么方法可以做到这一点,非常感谢帮助者。

您可以使用字符串操纵器功能。 1.找到最后一个
2.首先查找

中的,您可以使用字符串操纵器函数。 1.找到最后一个 2.首先查找

中的,您可以使用[NSString componentsSeparatedByString:]然后拒绝任何空字符串。这也会产生删除列表中的空元素的效果:

NSArray *elements = [inputString componentsSeparatedByString:@","];
NSMutableArray *outputElements = [[NSMutableArray alloc] init];
for (NSString *element in elements)
    if ([element length] > 0)
        [outputElements addObject:element];
然后重新格式化字符串:

NSString *outputString = [outputElements componentsJoinedByString:@","]
您可以使用[NSString componentsSeparatedByString:],然后拒绝任何空字符串。这也会产生删除列表中的空元素的效果:

NSArray *elements = [inputString componentsSeparatedByString:@","];
NSMutableArray *outputElements = [[NSMutableArray alloc] init];
for (NSString *element in elements)
    if ([element length] > 0)
        [outputElements addObject:element];
然后重新格式化字符串:

NSString *outputString = [outputElements componentsJoinedByString:@","]
您可以使用stringByReplacingOccurrencesOfString:withString:options:range:method替换为“”

参考以下代码

    int strLength = [str1 length];
    str1 = [str1 stringByReplacingOccurrencesOfString:@"," withString:@"" options:NSCaseInsensitiveSearch range:NSRangeFromString(@"0,1")];
    str1 = [str1 stringByReplacingOccurrencesOfString:@"," withString:@"" options:NSCaseInsensitiveSearch range:NSRangeFromString([NSString stringWithFormat:@"%d,%d",strLength - 1,1])];
您可以使用stringByReplacingOccurrencesOfString:withString:options:range:method替换为“”

参考以下代码

    int strLength = [str1 length];
    str1 = [str1 stringByReplacingOccurrencesOfString:@"," withString:@"" options:NSCaseInsensitiveSearch range:NSRangeFromString(@"0,1")];
    str1 = [str1 stringByReplacingOccurrencesOfString:@"," withString:@"" options:NSCaseInsensitiveSearch range:NSRangeFromString([NSString stringWithFormat:@"%d,%d",strLength - 1,1])];
您可以使用StringByTrimmingCharactersSet:NSSTring的方法

您可以使用StringByTrimmingCharactersSet:NSSTring的方法


删除字符串第一个和最后一个的逗号(如果有)

  NSString *str1 = @",a,b,c,d,";

    NSLog(@"%@",[str1 substringFromIndex:str1.length - 1]);

    if ([[str1 substringToIndex:1] isEqualToString:@","])
    {

        str1 = [str1 substringFromIndex:1];

        NSLog(@" == %@",str1);

    }
    if([[str1 substringFromIndex:str1.length - 1] isEqualToString:@","])
    {
        str1 = [str1 substringToIndex:str1.length - 1];

        NSLog(@"%@",[str1 substringToIndex:str1.length - 1]);
    }

删除字符串第一个和最后一个的逗号(如果有)

  NSString *str1 = @",a,b,c,d,";

    NSLog(@"%@",[str1 substringFromIndex:str1.length - 1]);

    if ([[str1 substringToIndex:1] isEqualToString:@","])
    {

        str1 = [str1 substringFromIndex:1];

        NSLog(@" == %@",str1);

    }
    if([[str1 substringFromIndex:str1.length - 1] isEqualToString:@","])
    {
        str1 = [str1 substringToIndex:str1.length - 1];

        NSLog(@"%@",[str1 substringToIndex:str1.length - 1]);
    }

StringByTrimmingCharactersSet:您可以使用NSRegularExpression,或者使用hasPrefix或hasSuffix检查并删除逗号(如果需要)。StringByTrimmingCharactersSet:您可以使用NSRegularExpression,或者使用hasPrefix或hasSuffix检查并删除逗号(如果需要)。但我需要删除起始和结束位置的逗号。。您说过要删除空字符串,…但我需要删除起始和结束位置的逗号。。你说要删除空字符串,谁说了C++?谁说了C++?