文書   >   Swift   >   Swift 標準ライブラリ   >   Strings and Text   >   Character
構造体
Character
ユーザが知覚する文字に近い単一の拡張書記素クラスタ。
宣言
概要
Character 型は、Unicode 境界アルゴリズムによってグループ化された、1 つ以上の Unicode スカラー値で構成される文字を表します。通常、Character インスタンスは、文字列の読者が単一の文字として認識するものと一致します。文字列は Character インスタンスのコレクションであるため、表示される文字数は通常、文字列の長さを数えるための最も自然な方法です。
let greeting = "Hello! 🐥"
print("Length: \(greeting.count)")
// Prints "Length: 8"
文字列内の各文字は 1 つ以上の Unicode スカラー値で構成できるため、文字列内の文字数が Unicode スカラー値表現の長さや特定のバイナリ表現内の文字列の長さと一致しない場合があります。
print("Unicode scalar value count: \(greeting.unicodeScalars.count)") // Prints "Unicode scalar value count: 15" print("UTF-8 representation count: \(greeting.utf8.count)") // Prints "UTF-8 representation count: 18"
すべての Character インスタンスは、拡張書記素クラスタ としてまとめられた 1 つ以上の Unicode スカラー値で構成されています。これらのスカラー値がグループ化される方法は、標準、ローカル化、またはその他の方法で調整された Unicode セグメンテーションアルゴリズムによって定義されます。
たとえば、国の Unicode フラグ文字は、その国の ISO 3166-1 alpha-2 コードに対応する 2 つの地域指標スカラー値で構成されています。米国の alpha-2 コードは "US" であり、そのため、そのフラグ文字は Unicode のスカラー値 "\u{1F1FA}"(REGIONAL INDICATOR SYMBOL LETTER U、地域指標記号文字 U) と "\u{1F1F8}"(REGIONAL INDICATOR SYMBOL LETTER S、地域表示記号文字 S) で構成されています。文字列リテラル内で互いに隣接して配置されると、これら 2 つのスカラー値は、Swift の Character インスタンスによって表される単一の書記素クラスタに結合されます。
let usFlag: Character = "\u{1F1FA}\u{1F1F8}"
print(usFlag)
// Prints "🇺🇸"
この議論で使用されている Unicode の用語の詳細については、Unicode.org の用語集 を参照してください。特に、この議論では 拡張書記素クラスタ と Unicode スカラー値 について説明します。
トピックス
文字の作成
1 文字の文字列リテラルから文字を作成するだけでなく、Unicode のスカラー値または 1 文字の文字列も変換できます。
1 文字の文字列から文字を作成します。
テキストストリームに書き込む
func write<Target>(to: inout Target)
与えられた出力ストリームに文字を書き込みます。
文字の比較
static func == (Character, Character) -> Bool
static func != (Character, Character) -> Bool
2 つの値が等しくないかどうかを示すブール値を返します。
static func < (Character, Character) -> Bool
static func <= (Character, Character) -> Bool
最初の引数の値が 2 番目の引数の値以下であるかどうかを示すブール値を返します。
static func > (Character, Character) -> Bool
最初の引数の値が 2 番目の引数の値より大きいかどうかを示すブール値を返します。
static func >= (Character, Character) -> Bool
最初の引数の値が 2 番目の引数の値以上であるかどうかを示すブール値を返します。
文字の Unicode 値の操作
与えられた Unicode スカラー値を含む文字を作成します。
var unicodeScalars: Character.UnicodeScalarView
typealias Character.UnicodeScalarView
これが ASCII 文字かどうかを示すブール値。
この文字の ASCII コード化値 (もしこれが ASCII 文字の場合)。
文字の検査
この文字が英字かどうかを示すブール値。
この文字が句読点を表すかどうかを示すブール値。
この文字が改行を表すかどうかを示すブール値。
この文字が改行を含む空白を表すかどうかを示すブール値。
この文字が記号を表すかどうかを示すブール値。
この文字が数学的な文脈で自然に現れる記号を表すかどうかを示すブール値。
この文字が通貨記号を表すかどうかを示すブール値。
文字の大小をチェックする
この文字が大文字小文字変換のいずれの形式でも変化するかどうかを示すブール値。
この文字が大文字と見なされるかどうかを示すブール値。
この文字の大文字バージョンを返します。
この文字が小文字と見なされるかどうかを示すブール値。
この文字の小文字のバージョンを返します。
文字の数値プロパティの確認
この文字が数字を表すかどうかを示すブール値。
この文字が整数を表すかどうかを示すブール値。
これが整数を表す場合、この文字が表す数値。
この文字が 16 進数を表すかどうかを示すブール値。
これが 16 進数の場合、この文字が表す数値。
範囲式の作成
static func ..< (Character, Character) -> Range<Character>
下の境界を含むが上の境界を含まない、半開放の範囲を返します。
static func ... (Character, Character) -> ClosedRange<Character>
両方の境界を含む閉鎖範囲を返します。
static func ..< (Character) -> PartialRangeUpTo<Character>
上の境界を含まないが上の境界までの部分範囲を返します。
static func ... (Character) -> PartialRangeThrough<Character>
上の境界を含むそれまでの部分範囲を返します。
static func ... (Character) -> PartialRangeFrom<Character>
下の境界から上方向に伸びる部分範囲を返します。
文字を描く
デバッグに適した、文字のテキスト表現。
Character インスタンスを反映するミラー。
var customPlaygroundQuickLook: _PlaygroundQuickLook
Character インスタンス用のカスタムのプレイグラウンドクイックルック。
  廃止  
与えられたハッシュにそれらを供給することによってこの値の本質的な要素をハッシュします。
あまり使われない機能
init(extendedGraphemeClusterLiteral: Character)
指定された値で文字を作成します。
init(unicodeScalarLiteral: Character)
与えられた値に初期化されたインスタンスを作成します。
関連
以下に準拠
CustomDebugStringConvertible
CustomStringConvertible
ExpressibleByExtendedGraphemeClusterLiteral
以下も見よ
文字列と文字
文字のコレクションである Unicode 文字列の値。
トップへ
トップへ
トップへ
トップへ