English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift 文字と文字列

このチュートリアルでは、Swiftの文字と文字列の使用法を学びます。また、文字と文字列に対して実行できる異なる操作についても学びます。

文字とは何ですか?

文字は単一のシンボル(アルファベット、数字など)です。Swiftの文字はCharacter型であり、以下のように宣言されます:

let someCharacter:Character

Swiftで文字を宣言と割り当てる方法はどうですか?

文字と同じ値を指定するには、ダブルクォート“”を使用できますが、クォート内には1つの文字のみを含めることができます。

複数の文字を含める必要がある場合、String型ではなくCharacter型として定義する必要があります。

例1:宣言と割り当ての文字

let someCharacter:Character = “H”
let specialCharacter:Character = “@”
print(someCharacter)
print(specialCharacter)

このプログラムを実行すると、出力は以下の通りです:

H
@

例2:複数の文字の割り当て(無効)

しかし、文字内に二つのシンボルが

/*
 これによりエラーが発生します。
この問題を修正するために、タイプを文字列に変更します。
*/
let failableCharacter:Character = "H@"
print(failableCharacter)

上記のコードを実行しようとすると、以下のようなエラーメッセージを受け取ります:

Cannot convert value of type String to Character.(String型の値をCharacterに変換することができません。)

Unicodeとエスケープシーケンスを使用して文字を作成

emoji感情符号を特別な種類の文字として作成するためにunicodesを使用することもできます。\u{n}のエスケープシーケンスを使用してunicode(Unicodeコードポイント、nは16進数)を作成できます。

例3:Unicode文字の作成

let heartShape:Character = "\u{2665"
print(heartShape)

このプログラムを実行すると、出力は以下の通りです:

上記の例では、コードU + 2665心形文字が作成されました。\u{2665文字列はダブルクォート""で囲まれていますが、コンパイラはそれをStringと見なさないのは、\u{n}のエスケープシーケンスを使用しているからです。リテラル内のエスケープシーケンスは自身を表しません。

文字列とは何ですか?

文字列は単なる文字の集合です。Swiftの文字列はString型であり、以下のように宣言されます:

let someString:String

Swiftで文字列を宣言し割り当てる方法はどうですか?

以下のように使用できます文字列リテラルString型として値を割り当てます。文字列リテラルは、ダブルクォート""で囲まれた文字の集合です。

例4:文字列の宣言と割り当て

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)

しかし、上記の方法は読みやすさが低いです。

したがって、メッセージを表示するための文字列の挿入を簡単に行う方法があります。挿入は、文字列リテラル内に変数や定数の値を含めるプロセスです。

文字列リテラル内に変数や定数を挿入する場合、括弧( )で囲み、アンダースコア(\)で前置します。

例8:Swiftでの文字列の挿入

let playerName = "Jack"
let playerScore = 99
let congratsMessage = "おめでとう\(playerName)!. あなたの最高得点は \(playerScore)."
print(congratsMessage)

このプログラムを実行すると、出力は以下の通りです:

おめでとう、Jack!. あなたの最高得点は 99.

文字列内蔵の関数と属性:

1. isEmpty(空かどうかの確認)

この関数は、文字列が空かどうかを確認し、空の場合はtrue、そうでない場合falseを返します。

例9:isEmpty

var emptyString = ""
print(emptyString.isEmpty)

このプログラムを実行すると、出力は以下の通りです:

true

2.capitalized(単語の大文字)

この属性は、文字列内の各単語を大文字にするために使用されます。

例10:大文字

let someString = "hello, world!"
print(someString.capitalized)

このプログラムを実行すると、出力は以下の通りです:

Hello, World!

3.uppercased と lowercased(文字列の大文字と小文字)

大文字関数は文字列を大文字に変換し、小文字関数は文字列を小文字に変換します。

例11:uppercased()とlowercased()

let someString = "Hello, World!"
print(someString.uppercased())
print(someString.lowercased())

このプログラムを実行すると、出力は以下の通りです:

HELLO, WORLD!
hello, world!

4.count (カウント/長さ)

この属性は、文字列内の文字の総数を計算するために使用されます。

例12:カウント

let someString = "Hello, World!"
print(someString.count)

このプログラムを実行すると、出力は以下の通りです:

13

5. hasPrefix

この関数は、文字列が特定の文字で始まるかどうかを確認し、布尔値を返します。文字列の接頭辞が提供された値と一致する場合、trueを返し、そうでない場合、falseを返します。

例13:hasPrefix()

let someString = "Hello, World!"
print(someString.hasPrefix("Hell"))
print(someString.hasPrefix("hell"))

このプログラムを実行すると、出力は以下の通りです:

true
false

6hasSuffix

この関数は、文字列が特定の文字列で終わるかどうかを確認し、布尔値を返します。提供された値と一致する場合、trueを返し、一致しない場合、falseを返します。

例14:hasSuffix()

print(someString.hasSuffix("rld!"))
print(someString.hasSuffix("Rld!"))

このプログラムを実行すると、出力は以下の通りです:

true
false