我是iPhone新手,我想在特殊字符后剪切一个字符串,让我们举个例子 “works.php”,我想从这个字符串中删除“.php”,这意味着我要删除“。”之后的内容。 这样做的代码是什么? 在此先感谢。
答案 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:@""];
如果您想要其他删除选项,则另一种方法是NSRange
和substringWithRange
。