English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、Swiftの文字と文字列の使用法を学びます。また、文字と文字列に対して実行できる異なる操作についても学びます。
文字は単一のシンボル(アルファベット、数字など)です。Swiftの文字はCharacter型であり、以下のように宣言されます:
let someCharacter:Character
文字と同じ値を指定するには、ダブルクォート“”を使用できますが、クォート内には1つの文字のみを含めることができます。
複数の文字を含める必要がある場合、String型ではなくCharacter型として定義する必要があります。
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
このプログラムを実行すると、出力は以下の通りです:
H @
しかし、文字内に二つのシンボルが
/* これによりエラーが発生します。 この問題を修正するために、タイプを文字列に変更します。 */ let failableCharacter:Character = "H@" print(failableCharacter)
上記のコードを実行しようとすると、以下のようなエラーメッセージを受け取ります:
Cannot convert value of type String to Character.(String型の値をCharacterに変換することができません。)
emoji感情符号を特別な種類の文字として作成するためにunicodesを使用することもできます。\u{n}のエスケープシーケンスを使用してunicode(Unicodeコードポイント、nは16進数)を作成できます。
let heartShape:Character = "\u{2665" print(heartShape)
このプログラムを実行すると、出力は以下の通りです:
♥
上記の例では、コードU + 2665心形文字が作成されました。\u{2665文字列はダブルクォート""で囲まれていますが、コンパイラはそれをStringと見なさないのは、\u{n}のエスケープシーケンスを使用しているからです。リテラル内のエスケープシーケンスは自身を表しません。
文字列は単なる文字の集合です。Swiftの文字列はString型であり、以下のように宣言されます:
let someString:String
以下のように使用できます文字列リテラルString型として値を割り当てます。文字列リテラルは、ダブルクォート""で囲まれた文字の集合です。
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
このプログラムを実行すると、出力は以下の通りです:
Hello, world! I love Swift.
ここでは、「Hello,world!」と「I love Swift.」はそれぞれsomeStringとsomeMessageという文字列変数を作成するための文字列です。
Stringには最も一般的な操作を処理するための内蔵の関数と属性があります。例えば:文字列を結合するには、それを大文字または小文字に変更してください。以下にいくつかの一般的な操作を説明します:
以下のように使用できます比較演算子 (==)二つの文字列が等しいか簡単に確認します。二つの文字列が等しい場合、演算子はtrueを返し、そうでない場合falseを返します。
例5:Swiftでの文字列比較
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
このプログラムを実行すると、出力は以下の通りです:
false true
使用できます加法演算子を使用して (+)または複合代入演算子 (+=)で異なる2つの文字列値を足します。appendメソッドを使用して、文字列に文字を付加することもできます/文字列。
例6:Swiftでの文字列結合
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
このプログラムを実行すると、出力は以下の通りです:
Hello, World Hello, World!
上記のプログラムでは、追加して使用することで+演算子で生成された文字列 result。したがって、helloStrworldStrprint(result),スクリーンに表示されますHello,World。
appendメソッドを使用して、任意の文字や文字列を付加することもできます。result.append("!")で文字列の末尾に!文字を付加します。したがって、print(result)では、スクリーンに表示されますHello,World!。
高度な代入演算子を使用した文字列結合
また、高度な代入演算子(+ =)で文字列を結合します。
例7:使用+ =演算子の文字列結合
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
このプログラムを実行すると、出力は以下の通りです:
Hello, World!
helloStrではvarを使用しておらず、letで定義している場合は以降で使用することができません。 +=演算子で変更すると、最終的にはエラーが発生します。したがって、helloStr変数を定義する必要があります。
これはシンプルなプロセスで、変数、定数などを含む文字列リテラルです。プレイヤーの名前と得点が2つの定数に保存されていると仮定して、以下のようになります:
let playerName = "Jack" let playerScore = 99
現在、プレイヤーにメッセージを表示する必要があります「おめでとうございますJack!あなたの最高得点は99。” ここでは、単一の文字列内に定数の値を使用する方法が必要です。
これは文字列の連結を使用して実現できます:
let congratsMessage = "おめでとう " + playerName + "!. あなたの最高得点は " + playerScore + "." print(congratsMessage)
しかし、上記の方法は読みやすさが低いです。
したがって、メッセージを表示するための文字列の挿入を簡単に行う方法があります。挿入は、文字列リテラル内に変数や定数の値を含めるプロセスです。
文字列リテラル内に変数や定数を挿入する場合、括弧( )で囲み、アンダースコア(\)で前置します。
let playerName = "Jack" let playerScore = 99 let congratsMessage = "おめでとう\(playerName)!. あなたの最高得点は \(playerScore)." print(congratsMessage)
このプログラムを実行すると、出力は以下の通りです:
おめでとう、Jack!. あなたの最高得点は 99.
この関数は、文字列が空かどうかを確認し、空の場合はtrue、そうでない場合falseを返します。
var emptyString = "" print(emptyString.isEmpty)
このプログラムを実行すると、出力は以下の通りです:
true
この属性は、文字列内の各単語を大文字にするために使用されます。
let someString = "hello, world!" print(someString.capitalized)
このプログラムを実行すると、出力は以下の通りです:
Hello, World!
大文字関数は文字列を大文字に変換し、小文字関数は文字列を小文字に変換します。
let someString = "Hello, World!" print(someString.uppercased()) print(someString.lowercased())
このプログラムを実行すると、出力は以下の通りです:
HELLO, WORLD! hello, world!
この属性は、文字列内の文字の総数を計算するために使用されます。
let someString = "Hello, World!" print(someString.count)
このプログラムを実行すると、出力は以下の通りです:
13
この関数は、文字列が特定の文字で始まるかどうかを確認し、布尔値を返します。文字列の接頭辞が提供された値と一致する場合、trueを返し、そうでない場合、falseを返します。
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
このプログラムを実行すると、出力は以下の通りです:
true false
この関数は、文字列が特定の文字列で終わるかどうかを確認し、布尔値を返します。提供された値と一致する場合、trueを返し、一致しない場合、falseを返します。
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
このプログラムを実行すると、出力は以下の通りです:
true false