我是 iPhone 的新手,我想在一个特殊字符之后剪切一个字符串,让我们以这个例子 "works.php" 为例,我想从这个字符串中删除 ".php" 意味着我想删除 "." 之后的内容。这样做的代码是什么?提前致谢。
问问题
4130 次
3 回答
5
看来您想使用-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;
}
于 2012-08-12T12:21:39.323 回答
4
对于特定示例,您可以使用:
- (NSString *)stringByDeletingPathExtension
做你想做的更一般的方法是:
NSString *originalString = @"works.php";
NSString *finalString =
[[originalString componentsSeparatedByString:@"."] objectAtIndex: 0];
您可以将点字符替换为您想要的任何字符。
于 2012-08-12T12:21:57.317 回答
1
您可以使用:
myString = @"anything.php";
myString = [myString stringByReplacingOccurrencesOfString:@".php" withString:@""];
这样做的好处是您可以放置任何要删除的内容,而不仅仅是路径。例如:
myString = @"anything-123";
myString = [myString stringByReplacingOccurrencesOfString:@"-123" withString:@""];
另一种方法是NSRange
,substringWithRange
如果您想要其他删除选项..
于 2012-08-12T12:33:40.150 回答