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 に答える