我有NSString
这是一个网址。需要删除此网址:
NSString *myURL = @"http://www.test.com/folder/testfolder";
NSString *test = [myURL stringByReplacingCharactersInRange:[myURL rangeOfString:@"/" options:NSBackwardsSearch] withString:@""];
我有这个网址http://www.test.com/folder/testfolder
,我希望test
变量的值为http://www.test.com/folder/
,因此应该删除testfolder
。
所以我试图找到NSRange
testfolder
来用空字符串替换它。
但它不起作用。我做错了什么?
答案 0 :(得分:3)
试试这个:
NSString *myURL = @"http://www.test.com/folder/testfolder";
NSString *test = [myURL stringByDeletingLastPathComponent];
NSLog(@"%@", test);
你应该得到> http://www.test.com/folder/
答案 1 :(得分:3)
您可以将其转换为网址并使用-[NSURL URLByDeletingLastPathComponent]
:
NSString *myURLString = @"http://www.test.com/folder/testfolder";
NSURL *myURL = [NSURL URLWithString:myURLString];
myURL = [myURL URLByDeletingLastPathComponent];
myURLString = [myURL absoluteString];
答案 2 :(得分:0)
您不能使用[myURL rangeOfString:@“/”options:NSBackwardsSearch]返回的NSRange,因为它的长度为“1”。因此,为了保持使用NSRange的想法(使用stringByDeletingLastPathComponent的其他回复似乎也非常有效),以下是您可以这样做的方法:
NSRange *range=[myURL rangeOfString:@"/" options:NSBackwardsSearch];
NSString *test = [myURL stringByReplacingCharactersInRange:NSMakeRange(range.location,test.length-range.location) withString:@""];