3

我是 iPhone 的新手,我想在一个特殊字符之后剪切一个字符串,让我们以这个例子 "works.php" 为例,我想从这个字符串中删除 ".php" 意味着我想删除 "." 之后的内容。这样做的代码是什么?提前致谢。

4

3 回答 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:@""];

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

于 2012-08-12T12:33:40.150 回答