从Iphone SDK中的字符串中删除最后一个“/”

从Iphone SDK中的字符串中删除最后一个“/”,iphone,objective-c,ios,xcode,nsstring,Iphone,Objective C,Ios,Xcode,Nsstring,我有一个字符串,比如: NSString *encodedString = [Mystring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg/ 我想用这个字符串加载html页面。但由于/最后在字符串中,我得到的URL为空 我的代码如下: NSURL *ur=[NSURL URLWithStri

我有一个字符串,比如:

NSString *encodedString = [Mystring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
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);

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

您确定这是因为最后一个“/”吗?可能是因为中间的“~”字吗?

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

unichar last = [urlString characterAtIndex:urlString.length - 1];
if (last == '/')
    urlString = [urlString substringToIndex:urlString.length - 1];

你确定是因为最后一个“/”吗?可能是因为中间的“~”字吗?

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

unichar last = [urlString characterAtIndex:urlString.length - 1];
if (last == '/')
    urlString = [urlString substringToIndex:urlString.length - 1];

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

NSString *encodedString = [Mystring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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

NSString *encodedString = [Mystring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
试试这个也许对你有帮助

NSString * Mystring=@"http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg/";
[alfa substringToIndex:alfa.length-1];
试试这个也许对你有帮助

NSString * Mystring=@"http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg/";
[alfa substringToIndex:alfa.length-1];

如果您确定在每种情况下都需要从字符串中删除最后一个字符,那么您可以按如下方式获得新闻字符串:

NSString *newString = [oldString substringToIndex:[oldString length]-1];

如果您确定在每种情况下都需要从字符串中删除最后一个字符,那么您可以按如下方式获得新闻字符串:

NSString *newString = [oldString substringToIndex:[oldString length]-1];
请尝试此代码

    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);
    }
我得到了日志输出:http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg

希望这能帮助你…

试试这段代码

    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);
    }
我得到了日志输出:http://feedproxy.google.com/~r/MakePartsFast/~3/1dZEOLADapg



希望这对您有所帮助…

我真的怀疑您不能仅仅因为最后有一个/就将NSString转换为NSURL。您可以添加另一个NSLog来查看Mystring的值吗?我真的怀疑您不能仅仅因为最后有一个/就将NSString转换为NSURL。您可以添加另一个NSLog来查看Mystring的值吗?如果oldString为空,这将crash@RolandKeesom如果[oldString length]>0{NSString*newString=[oldString substringToIndex:[oldString length]-1];}如果oldString为空,则可以轻松修复此问题crash@RolandKeesom如果[oldString length]>0{NSString*newString=[oldString substringToIndex:[oldString长度]-1];}是的,我确定这是因为“/”。我也尝试了你的代码,但条件不满足。我是否缺少某些内容,或者这不会在空字符串长度为0时崩溃?是的,我确定这是因为“/”。我也尝试了你的代码,但条件不满足。我是否缺少某些内容,或者这不会在空字符串长度为0时崩溃?我正在获取在此编码后使用相同的字符串。编码后,使用itRoland应该是安全的,并且可能有正确的答案:顺便说一句,对于最后一个字符检查,只需使用[string hasSuffix:@/]:我在此编码后得到相同的字符串。编码后,使用itRoland应该是安全的,并且可能有正确的答案:顺便说一句,对于最后一个字符检查,只需使用[string hasSuffix:@/]:抱歉,但是我得到了与/@user1673099相同的字符串,现在只需复制此代码并粘贴到您的视图中就会出现:方法并查看日志…发表评论后dude..:是的,您是对的。但是当尝试动态传递时,我得到了与/@user1673099相同的字符串。动态值中得到了什么???只需发布从中获得的字符串并记录即可Sorrrryyyy…,是的,您的代码正在运行,但问题是当我尝试在日志中打印字符串时,它显示的内容与我询问的内容相同。但当我将鼠标放在字符串变量上时,它显示的内容类似\n\t\t所以,当我尝试您的代码时,最后一次\t删除,但我总是在日志中显示为“对不起”,但我得到了与/@user1673099相同的字符串,现在只需复制此代码即可e并粘贴到您的视图中将出现:方法并查看日志…发表评论后dude..:是的,您是对的。但是当尝试动态传递时,我得到的字符串与/。在动态值中得到的是什么???只需发布从中得到的字符串并记录ALSOSORRRRYYYY…,是的,您的代码正在工作,但问题是当我尝试p时日志中的rint string显示的内容与我询问的内容相同。但当我将鼠标放在字符串变量上时,它显示的内容类似于\n\t\t所以,当我尝试您的代码时,最后删除的\t内容始终显示在日志中