0

数字を表すいくつかの文字列から余分な文字を削除するための次のコードがあります。

NSCharacterSet *charactersToKeep = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
NSCharacterSet *charactersToBeRemoved = [charactersToKeep invertedSet];

NSString *myString = [dictionary objectForKey:@"MyKey"];
myString = [myString stringByTrimmingCharactersInSet:charactersToBeRemoved];
myString = [myString stringByReplacingOccurrencesOfString:@"," withString:@""];

メソッドの後、stringByTrimmingCharactersInSet:コンマ以外の余分な文字はすべて削除されます。stringByReplacingOccurencesOfString:カンマの呼び出しが削除された後。最初の呼び出し後に削除されないのはなぜですか?

コードの各行の後のmyStringのサンプルを次に示します。

myString = " $9,959 "
myString = "9,959"
myString = "9959"

私も試しました

NSCharacterSet *charactersToBeRemoved = [NSCharacterSet decimalDigitCharacterSet];

同じ結果が得られました。

4

1 に答える 1

7

stringByTrimmingCharactersInSet:文字列の内側ではなく、文字列の端からのみ文字をトリミングします。

于 2013-03-27T05:21:57.460 に答える