NSCharacterSetクラス
Index>Foundation>NSCharacterSet

APPLE MacBook Pro with Retina Display(13.3/2.4GHz Dual Core i5/8GB/256GB/Iris Graphics) ME865J/A
- 出版社/メーカー: アップル
- 発売日: 2013/10/23
- メディア: Personal Computers
- この商品を含むブログを見る
解説
| 継承 | NSObject |
| 準拠 | NSCoding |
| NSCopying | |
| NSMutableCopying | |
| NSObject (NSObject) | |
| フレームワーク | /System/Library/Frameworks/Foundation.framework |
| 使用可能 | Mac OS X v10.0以降 |
| iOS 2.0以降 | |
| 定義 | NSCharacterSet.h |
概要
本クラスについて
Unicodeに準拠した文字セットを提供するクラスです。NSStringオブジェクトやNSScannerオブジェクトで文字を検索する際に使用されます。
変更可能な文字セットはNSMutableCharacterSetクラスを使用します。
FoundationのCFCharacterSetRefとトールフリーブリッジです。
文字セットを作成
NSCharacterSetクラスにはUnicodeの分類に準拠したセットをつくるメソッドがあります。アルファベットと数字から構成される文字セットは(+ alphanumericCharacterSet)メソッドで作成します。小数点を含む数字の文字列から構成される文字セットを作成するには(+ decimalDigitCharacterSet)メソッドを使います。
小文字の文字セットは(+ lowercaseLetterCharacterSet)メソッドで作成します。反対に大文字から構成される文字セットは(+ uppercaseLetterCharacterSet)メソッドで作成します。アルファベットと表意文字から構成される文字セットは(+ letterCharacterSet)メソッドを使います。
コントロール文字の文字セットは(+ controlCharacterSet)メソッドで、記号類の文字セットは(+ symbolCharacterSet)メソッドで、小数点や句読点の文字セットは(+ punctuationCharacterSet)メソッドで作成できます。
改行文字から構成される文字セットは(+ newlineCharacterSet)メソッドで、ベース文字でない(他の文字と組み合わせて使う)文字セットは(+ nonBaseCharacterSet)メソッドを使います。アクセントや濁点・半濁点付き文字のような組み合わされた文字列から構成される文字セットは(+ decomposableCharacterSet)メソッドを使います。
ギリシャ語などで使われる文字から構成される文字セット(Dž、Lj、Nj、Dzなど)を作成するには(+ capitalizedLetterCharacterSet)メソッドを使います。
文字でないカテゴリに含まれる文字セットは(+ illegalCharacterSet)メソッドで作成します。
空白文字のみの文字セットは(+ whitespaceCharacterSet)メソッドで作成できますし、空白文字と改行文字も含む文字セットは(+ whitespaceAndNewlineCharacterSet)メソッドで作成できます。
カスタムの文字セットを作成
オリジナルの文字セットを作成するには、指定した文字列を渡してその文字を含む文字セットを作るメソッド(+ characterSetWithCharactersInString)や、Unidode番号の範囲を指定してその文字を含む文字セットを作るメソッド(+ characterSetWithRange:)などがあります。
指定した文字セットの全く逆の文字セットを作成するメソッド(– invertedSet)もあります。
ビットマップ表現で文字セットを作成
文字セットはビットマップとして作成する事もできます。1コード分1ビットとなっていて通常65536文字分(8192byte )となっています。その範囲を超える文字が文字セットに含まれる場合はUTF32で表される1114112文字分(139280byte)まで拡張されます。
ビットマップであるNSDataから文字セットを作るメソッド(+ characterSetWithBitmapRepresentation)やファイルから文字セットを作るメソッド(+ characterSetWithContentsOfFile)があります。ファイルの内容は上記のビットマップファイルである必要があります。
文字セットをビットマップデータにして返します。文字セットをファイルに保存するためにビットマップデータにするメソッドは(– bitmapRepresentation)を使用します。
メンバーであるかのテスト
指定した文字が文字セットに含まれているかを返すメソッド(– characterIsMember)があります。ここで扱えるのはunicharなので65535までしか扱えません。
UTF32が扱えるメソッド(– longCharacterIsMember)もあります。
指定の文字セットはスーパーセットかを返すメソッド(– isSupersetOfSet)があります。入力した文字が規定内の文字かどうかの判別に利用できます。
数字以外の文字が入力されていないかチェックする
#pragma mark NSCharacterSet isSupersetOfSet -(void)method024 { NSCharacterSet *decimalSet = [NSCharacterSet decimalDigitCharacterSet]; NSCharacterSet *checkSet = [NSCharacterSet characterSetWithCharactersInString:@"a12345"]; BOOL valid = [decimalSet isSupersetOfSet:checkSet]; NSLog(@"%s is number? %@",__FUNCTION__,(valid)?@"YES":@"NO"); //NSLog(@"%s %@",__FUNCTION__,mString); printf("unsigned short の最大値: %u\n", USHRT_MAX); }
適合するプロトコル
NSCoding
encodeWithCoder:
initWithCoder:
NSCopying
copyWithZone:
NSMutableCopying
mutableCopyWithZone:
メソッド
| 標準文字セットを作成 | OS X | iOS | |
| + alphanumericCharacterSet | 10.0 | 2.0 | アルファベットの文字セット |
| + capitalizedLetterCharacterSet | 10.0 | 2.0 | ギリシャ語などで使われる文字から構成される文字セット |
| + controlCharacterSet | 10.0 | 2.0 | コントロール文字のセット |
| + decimalDigitCharacterSet | 10.0 | 2.0 | 数字の文字セット |
| + decomposableCharacterSet | 10.0 | 2.0 | ユニコード1.1でアクセント記号のついた文字セット |
| + illegalCharacterSet | 10.0 | 2.0 | 例外の文字セット |
| + letterCharacterSet | 10.0 | 2.0 | アルファベットの文字セット |
| + lowercaseLetterCharacterSet | 10.0 | 2.0 | 小文字のアルファベットの文字セット |
| + newlineCharacterSet | 2.0 | 改行文字の文字セット | |
| + nonBaseCharacterSet | 10.0 | 2.0 | ベース文字でない文字セット |
| + punctuationCharacterSet | 10.0 | 2.0 | 句読点の文字セット |
| + symbolCharacterSet | 10.0 | 2.0 | シンボルキャラクタの文字セット |
| + uppercaseLetterCharacterSet | 10.0 | 2.0 | 大文字のアルファベットの文字セット |
| + whitespaceAndNewlineCharacterSet | 10.0 | 2.0 | スペースとタブとCR |
| + whitespaceCharacterSet | 10.0 | 2.0 | スペースとタブ |
| カスタム文字セットの作成 | |||
| + characterSetWithCharactersInString | 10.0 | 2.0 | 指定した文字列から文字セットを作成 |
| + characterSetWithRange | 10.0 | 2.0 | 指定した範囲のユニコード文字で文字セット |
| – invertedSet | 10.0 | 2.0 | レシーバに含まれていない文字だけを含んだセット |
| ビットマップ表現として文字セットの作成と管理 | |||
| + characterSetWithBitmapRepresentation | 10.0 | 2.0 | バイナリデータから文字セットを作成 |
| + characterSetWithContentsOfFile | 10.0 | 2.0 | ビットマップファイルから文字セットを作成 |
| – bitmapRepresentation | 10.0 | 2.0 | 文字セットのバイナリ形式データ |
| セットのメンバーであるかのテスト | |||
| – characterIsMember | 10.0 | 2.0 | 指定した文字はセットのメンバーか |
| – hasMemberInPlane | 10.0 | 2.0 | 指定した面はセットのメンバーを含むか |
| – isSupersetOfSet | 10.0 | 2.0 | 指定した文字セットはレシーバの文字セットを含むか |
| – longCharacterIsMember | 10.0 | 2.0 | 指定した文字は文字セットのメンバーか |
| 廃止 | |||
| longCharacterIsMember | 2.0 | ||
| isSupersetOfSet | 2.0 |