在iphone中的一个特殊字符后剪切nsstring

时间:2012-08-12 12:17:14

标签: iphone ios ipad nsstring

我是iPhone新手,我想在特殊字符后剪切一个字符串,让我们举个例子 “works.php”,我想从这个字符串中删除“.php”,这意味着我要删除“。”之后的内容。 这样做的代码是什么? 在此先感谢。

3 个答案:

答案 0 :(得分:5)

好像你想要use -stringByDeletingPathExtension

[@"works.php" stringByDeletingPathExtension]   // becomes @"works".

请注意,此方法会删除路径扩展,这与“删除点后面的内容”不完全相同。请阅读我上面链接的参考资料。

如果你真的只需要在最后一个点之后删除字符串,只需使用常规算法(1)找到最后一个点(2)得到一个子串直到最后一个点:

NSString* input = @"works.php";
NSRange lastDotRange = [input rangeOfString:@"." options:NSBackwardsSearch];
if (lastDotRange.location != NSNotFound) {
    return [input substringToIndex:lastDotRange.location];
} else {
    return input;
}

答案 1 :(得分:4)

对于具体示例,您可以使用:

- (NSString *)stringByDeletingPathExtension

更通用的做法是:

NSString *originalString = @"works.php";  
NSString *finalString = 
[[originalString componentsSeparatedByString:@"."] objectAtIndex: 0];

您可以将点字符替换为您想要的任何字符。

答案 2 :(得分:1)

您可以使用:

myString = @"anything.php";
myString = [myString stringByReplacingOccurrencesOfString:@".php" withString:@""];

这样做的好处是你可以放置任何东西,而不仅仅是路径。例如:

myString = @"anything-123";
myString = [myString stringByReplacingOccurrencesOfString:@"-123" withString:@""];

如果您想要其他删除选项,则另一种方法是NSRangesubstringWithRange