Swift-strings

提供:Dev Guides
移動先:案内検索

スイフト-文字列

Swift 4の文字列は、「Hello、World!」などの文字の順序付きコレクションです。また、それらはSwift 4データ型 String で表され、これは Character 型の値のコレクションを表します。

文字列を作成する

次のように、文字列リテラルを使用するか、Stringクラスのインスタンスを作成することにより、文字列を作成できます-

//String creation using String literal
var stringA = "Hello, Swift 4!"
print( stringA )

//String creation using String instance
var stringB = String("Hello, Swift 4!")
print( stringB )

//Multiple line string

let stringC = """
Hey this is a
example of multiple Line
string by finddevguides

"""
print(stringC)

上記のコードをコンパイルして実行すると、次の結果が生成されます。

Hello, Swift 4!
Hello, Swift 4!
Hey this is a
example of multiple Line
string by finddevguides

空の文字列

以下に示すように、空の文字列リテラルを使用するか、Stringクラスのインスタンスを作成することにより、空の文字列を作成できます。 ブールプロパティ isEmpty を使用して、文字列が空かどうかを確認することもできます。

//Empty string creation using String literal
var stringA = ""

if stringA.isEmpty {
   print( "stringA is empty" )
} else {
   print( "stringA is not empty" )
}

//Empty string creation using String instance
let stringB = String()

if stringB.isEmpty {
   print( "stringB is empty" )
} else {
   print( "stringB is not empty" )
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

stringA is empty
stringB is empty

文字列定数

あなたは、文字列を変数に割り当てることで変更(または突然変異)できるか、または以下に示すように let キーワードを使用して定数に割り当てることで定数になるかどうかを指定できます-

//stringA can be modified
var stringA = "Hello, Swift 4!"
stringA + = "--Readers--"
print( stringA )

//stringB can not be modified
let stringB = String("Hello, Swift 4!")
stringB + = "--Readers--"
print( stringB )

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Playground execution failed: error: <EXPR>:10:1: error: 'String' is not
convertible to '@lvalue UInt8'
stringB + = "--Readers--"

文字列補間

文字列補間は、定数、変数、リテラル、および式の組み合わせから新しい文字列値を構築する方法であり、その値を文字列リテラル内に含めます。

文字列リテラルに挿入する各項目(変数または定数)は、1組の括弧で囲まれ、先頭に円記号が付きます。 これは簡単な例です-

var varA = 20
let constA = 100
var varC:Float = 20.0

var stringA = "\(varA) times \(constA) is equal to \(varC * 100)"
print( stringA )

上記のコードをコンパイルして実行すると、次の結果が生成されます-

20 times 100 is equal to 2000.0

文字列連結

+演算子を使用して、2つの文字列または文字列と文字、または2つの文字を連結できます。 これは簡単な例です-

let constA = "Hello,"
let constB = "World!"

var stringA = constA + constB
print( stringA )

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Hello,World!

ストリングの長さ

Swift 4の文字列には length プロパティはありませんが、グローバルcount()関数を使用して文字列の文字数をカウントできます。 これは簡単な例です-

var varA = "Hello, Swift 4!"

print( "\(varA), length is \((varA.count))" )

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Hello, Swift 4!, length is 15

文字列比較

==演算子を使用して、2つの文字列変数または定数を比較できます。 これは簡単な例です-

var varA = "Hello, Swift 4!"
var varB = "Hello, World!"

if varA == varB {
   print( "\(varA) and \(varB) are equal" )
} else {
   print( "\(varA) and \(varB) are not equal" )
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Hello, Swift 4! and Hello, World! are not equal

文字列の反復

文字列は、Swift 4の値のコレクションであるため、ループを使用して文字列を反復処理できます。 −

for chars in "ThisString" {
   print(chars, terminator: " ")
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

T h i s S t r i n g

Unicode文字列

次の例に示すように、utf8およびutf16プロパティを反復処理することにより、文字列のUTF-8およびUTF-16表現にアクセスできます-

var unicodeString = "Dog???"

print("UTF-8 Codes: ")
for code in unicodeString.utf8 {
   print("\(code) ")
}

print("\n")

print("UTF-16 Codes: ")
for code in unicodeString.utf16 {
   print("\(code) ")
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

UTF-8 Codes:
68
111
103
63
63
63


UTF-16 Codes:
68
111
103
63
63
63

文字列関数と演算子

Swift 4は、文字列に関連するさまざまなメソッドと演算子をサポートしています-

Sr.No Functions/Operators & Purpose
1

isEmpty

文字列が空かどうかを決定するブール値。

2

hasPrefix(prefix: String)

指定されたパラメータ文字列が文字列の接頭辞として存在するかどうかを確認する関数。

3

hasSuffix(suffix: String)

指定されたパラメータ文字列が文字列の接尾辞として存在するかどうかを確認する関数。

4

toInt()

数値の文字列値を整数に変換する関数。

5

count()

文字列内の文字数をカウントするグローバル関数。

6

utf8

文字列のUTF-8表現を返すプロパティ。

7

utf16

文字列のUTF-16表現を返すプロパティ。

8

unicodeScalars

文字列のUnicodeスカラー表現を返すプロパティ。

9

+

2つの文字列、または文字列と文字、または2つの文字を連結する演算子。

10

=* *=

文字列または文字を既存の文字列に追加する演算子。

11

== ==

2つの文字列の等価性を判定する演算子。

12

<

辞書編集比較を実行して、ある文字列が別の文字列よりも小さいかどうかを判断する演算子。

13

startIndex

文字列の開始インデックスで値を取得します。

14

endIndex

文字列の終了インデックスで値を取得します。

15

Indices

インデックスに1つずつアクセスします。 つまり、stringのすべての文字を1つずつ。

16

insert("Value", at: position)

位置に値を挿入します。

17

remove(at: position)

  • removeSubrange(range) *

位置の値を削除するか、文字列から値の範囲を削除します。

18
  • reversed()*

文字列の逆を返します