1

我有一个像这样的字符串:

http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg/

我想用这个字符串来加载 html 页面。但是因为最后在字符串中的“/”,我得到的 URL 是空的。

我的代码如下:

NSURL *ur=[NSURL URLWithString:Mystring];
        NSLog(@"%@",ur); //getting null value

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:ur];

        NSLog(@"%@",requestObj);

那么,如何从字符串中删除最后一个“/”?

4

5 回答 5

9

你确定是因为最后一个'/'?会不会是因为'~'中间的人物?

无论哪种方式,要检查最后一个字符,只需执行

unichar last = [urlString characterAtIndex:urlString.length - 1];
if (last == '/')
    urlString = [urlString substringToIndex:urlString.length - 1];
于 2012-12-20T13:19:47.410 回答
3

试试这个代码...

    NSString *Mystring = @"http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg/";
    if ([Mystring isEqualToString:@""]||[Mystring isEqual:nil]) {

        NSLog(@"\n\n String is NULL");
    }
    else {
        NSString *TempURl = [Mystring substringToIndex:[Mystring length]-1];

        NSString *urlstr =[TempURl stringByReplacingOccurrencesOfString:@" " withString:@""];
        urlstr =[urlstr stringByReplacingOccurrencesOfString:@"\n" withString:@""];

        urlstr =[urlstr stringByReplacingOccurrencesOfString:@"\t" withString:@""];
        [urlstr retain];

        NSURL *ur=[NSURL URLWithString:urlstr];
        NSLog(@"%@",ur); //now get string value here

        //        NSURLRequest *requestObj = [NSURLRequest requestWithURL:ur];
        //        
        //        NSLog(@"%@",requestObj);
    }

我得到了 Log OutPut:http ://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg

希望这可以帮助你...

于 2012-12-20T13:29:12.963 回答
1

我认为您需要对字符串进行编码,例如:

NSString *encodedString = [Mystring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2012-12-20T13:21:01.057 回答
1

如果您确定在每种情况下都需要从字符串中删除最后一个字符,那么您可以获得一个 newString 作为

NSString *newString = [oldString substringToIndex:[oldString length]-1];
于 2012-12-20T13:23:46.767 回答
0

试试这个可能对你有帮助

NSString * Mystring=@"http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg/";
[alfa substringToIndex:alfa.length-1];
于 2012-12-20T13:21:56.580 回答