0

次のコードを検討してください。

NSString *aString = @"\tThis is a sample string";
NSString *trimmedString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"The trimmed string: %@",trimmedString);
trimmedString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"string"]];
NSLog(@"The trimmed string: %@",trimmedString);

ここでcharacterSetWithCharactersInString:同じNSStringオブジェクトに使用するとtrimmedString、以前のwhitespaceトリミング効果が削除されます..

私の質問は、

NSCharacterSet同じオブジェクトに対して複数のオブジェクトを使用する可能性はありますNSStringか??? または、これを行う他の方法を提案してください。ただし、NSStringオブジェクトは同じでなければなりません..

4

2 に答える 2

1

これはどうですか:

NSString *aString = @"\tThis is a sample string";
NSMutableCharacterSet *customSet = [[NSMutableCharacterSet alloc] init];
[customSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
[customSet addCharactersInString:@"string"];
NSString *trimmedString = [aString stringByTrimmingCharactersInSet:customSet];
[customSet release];
于 2011-09-14T13:09:25.517 に答える
1

問題は文字セットによるものではありません。aString2回目の文字列のトリミング中に使用しているためです。trimmedString代わりに使用する必要があります。コードは次のようになります。

trimmedString = [trimmedString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"string"]];
于 2011-09-14T13:10:03.413 に答える