Structure

Character

A single extended grapheme cluster that approximates a user-perceived character. ある単一の拡張書記素クラスタで、1つのユーザ知覚文字におおよそ相当します。

Declaration 宣言

@frozen struct Character

Overview 概要

The Character type represents a character made up of one or more Unicode scalar values, grouped by a Unicode boundary algorithm. Generally, a Character instance matches what the reader of a string will perceive as a single character. Strings are collections of Character instances, so the number of visible characters is generally the most natural way to count the length of a string. Character型は、あるユニコード境界アルゴリズムによって一群にされる、ひとつ以上のユニコードスカラー値から成り立っている1つの文字を表します。一般的に、あるCharacterインスタンスがマッチするのは、ある文字列の読み手が単一の文字と知覚するものです。文字列は、Characterインスタンスのコレクションです、なので見ることのできる文字の数はたいてい文字列の長さを数える最も自然な方法です。


let greeting = "Hello! 🐥"
print("Length: \(greeting.count)")
// Prints "Length: 8"

Because each character in a string can be made up of one or more Unicode scalar values, the number of characters in a string may not match the length of the Unicode scalar value representation or the length of the string in a particular binary representation. 文字列中の各文字はひとつ以上のユニコードスカラー値から成り立つので、ある文字列の文字数はユニコードスカラー値表現の長さ、または特定のバイナリ表現での文字列の長さと一致しないかもしれません。


print("Unicode scalar value count: \(greeting.unicodeScalars.count)")
// Prints "Unicode scalar value count: 8"


print("UTF-8 representation count: \(greeting.utf8.count)")
// Prints "UTF-8 representation count: 11"

Every Character instance is composed of one or more Unicode scalar values that are grouped together as an extended grapheme cluster. The way these scalar values are grouped is defined by a canonical, localized, or otherwise tailored Unicode segmentation algorithm. すべてのCharacterインスタンスは、1つの拡張書記素クラスタとして一緒にまとめられる1つの以上のユニコードスカラー値から構成されます。これらのスカラー値が一群にされる方法は、ある正準の、ローカライズされた、ないしは別の方法で仕立てられたユニコード分節アルゴリズムによって定義されます。

For example, a country’s Unicode flag character is made up of two regional indicator scalar values that correspond to that country’s ISO 3166-1 alpha-2 code. The alpha-2 code for The United States is “US”, so its flag character is made up of the Unicode scalar values "\u{1F1FA}" (REGIONAL INDICATOR SYMBOL LETTER U) and "\u{1F1F8}" (REGIONAL INDICATOR SYMBOL LETTER S). When placed next to each other in a string literal, these two scalar values are combined into a single grapheme cluster, represented by a Character instance in Swift. 例えば、ある国のユニコードの国旗文字は、その国のISO 3166-1 alpha-2コードに対応する2つの地域指定スカラー値から作り上げられます。アメリカ合衆国に対するalpha-2コードは、「US」です、それでそれの国旗文字はユニコードスカラー値"\u{1F1FA}"(REGIONAL INDICATOR SYMBOL LETTER U)と"\u{1F1F8}"(REGIONAL INDICATOR SYMBOL LETTER S)から作り上げられます。あるSwift文字列リテラルにおいて互いに隣り合わせに置かれる時、これら2つのスカラー値は、Swiftでは1つのCharacterインスタンスによって表される、単一の書記素クラスタへと一体化されます。


let usFlag: Character = "\u{1F1FA}\u{1F1F8}"
print(usFlag)
// Prints "🇺🇸"

For more information about the Unicode terms used in this discussion, see the Unicode.org glossary. In particular, this discussion mentions extended grapheme clusters and Unicode scalar values. この解説において使われるユニコード用語についてのさらなる情報は、Unicode.org用語集を見てください。とりわけ、この解説は拡張書記素クラスタユニコードスカラー値について言及します。

Topics 話題

Creating a Character ある文字を作成する

In addition to creating a character from a single-character string literal, you can also convert a unicode scalar value or single-character string. ある文字を単一文字文字列リテラルから作成することに加えて、あなたはまた、あるユニコードスカラー値や単一文字文字列を変換できます。

Writing to a Text Stream テキストストリームを書き出す

Comparing Characters 文字の比較

Working with a Character’s Unicode Values 文字のユニコード値を扱う

Inspecting a Character 表意文字を調べる

Checking a Character’s Case 文字のケースを確認する

Checking a Character’s Numeric Properties 文字の数値プロパティを確認する

Creating a Range Expression 範囲式を作成する

Describing a Character ある文字の説明

Infrequently Used Functionality 滅多に使われない機能性

Type Aliases 型エイリアス

Instance Properties 様々なインスタンスプロパティ

See Also 参照

Strings and Characters 文字列と文字