2013-10-07 19 views
0

我遇到问题。我的字符串格式为​​,它有“”。现在我想从​​只得到abc(意味着从字符串中删除“”,只能得到abc)。我怎样才能做到这一点?在此先感谢如何从字符串中切割字符串在iOS中有“abc”

+1

你〜应变g以“最后一个字符为”开始? – incmiko

+0

@incmiko:是的,正确的。 –

+0

我写了我的答案检查它 – incmiko

回答

1
#import <Foundation/Foundation.h> 

int main(int argc, const char **argv) { 
    @autoreleasepool { 
     NSString *input = @"\"abc\""; 
     NSArray *elements = [input componentsSeparatedByString:@"\""]; 
     if ([elements count] > 0) { 
      NSString *element = [elements objectAtIndex:1]; 
      NSLog(@"count=%lu element='%@'", [elements count], element); 
     } 
    } 
    return 0; 
} 

$ clang -o strsep strsep.m -framework Foundation 
$ ./strsep 
2013-10-07 11:42:44.274 strsep[34292:707] count=3 element='abc' 
1
[String replaceOccurrencesOfString:@"\"" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [String length])]; 
2
​​
1

有一个内置的功能,可以让你用另一个替换字符串的所有出现 - 如果另一个被设置为空字符串(@ “”)它将有效地删除所有出现的子字符串。你的榜样:

NSString * yourNewString = [yourOldString stringByReplacingOccurrencesOfString:@"\"" withString:@""]); 
1

可以更换的出现。“有空的空间

NSString *some = @"\"abc\""; 
NSLog(@"%@",some); 
NSString *newString = [some stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 
NSLog(@"%@",newString); 
0

我为你写的方法,这将很好地工作:(如果你的最后一个字符是”)

- (NSString*) getTheString:(NSString*) yourString{ 
    NSString* answerString = [[NSString alloc]init]; 

    int substrinFrom = 0; 
    for (NSInteger charIdx=0; charIdx<[yourString length]; charIdx++){ 

     if ('"' == [yourString characterAtIndex:charIdx]) { 
      substrinFrom = charIdx; 
      NSLog(@"%i",substrinFrom); 
      break; 
     } 
    } 
    answerString = [yourString substringWithRange:NSMakeRange(substrinFrom+1, [yourString length] - substrinFrom -2)]; 

    return answerString; 

} 

来测试它:

NSString* test = [self getTheString:@"\"Hello this is a test string, and it will work\""]; 
NSLog(@"%@",test);