令人生气,但我不能让这个代码工作,首先我虽然它是一个可变/不可知的问题,但它不会,我相信。 我究竟做错了什么? labeledPemString do有内容,指定的characterSet正在打印'范围开始{0,26}'。但unlabeledBeginPemString与原始字符串相同。
//Get the .pem file contents
NSString *path = [[NSBundle mainBundle] pathForResource:@"publickey" ofType:@"pem"];
NSMutableString *labeledPemString = [[NSMutableString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSLog(@"labeled %@", labeledPemString);
//Take off -----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY----- headers
//First get begin range
NSRange beginHeaderRange = [labeledPemString rangeOfString:@"-----BEGIN PUBLIC KEY-----"];
NSLog(@"ranges begin %@ ", NSStringFromRange(beginHeaderRange));
//Create a characterset with begin range
NSCharacterSet *beginHeaderChSet = [NSCharacterSet characterSetWithRange:beginHeaderRange];
//Trim text
NSMutableString *unlabeledBeginPemString = [[labeledPemString stringByTrimmingCharactersInSet:beginHeaderChSet] mutableCopy];
NSLog(@"unlabeled 1 %@", unlabeledBeginPemString);
感谢您的帮助。
答案 0 :(得分:0)
stringByTrimmingCharactersInSet:
从接收器中删除集合中出现的字符。即NSCharacterSet
包含a
和c
,以及
[@"abc" stringByTrimmingCharactersInSet:characterSet];
得到@"b"
,characterSetWithRange:
中的范围是要放入字符集中的unicode的范围。
我想这不是你想要的。如果您只想从给定字符串中删除子字符串,只需使用substringFromIndex:
, substringToIndex
and substringWithRange:
。