Swiftで文字列を扱うためのstring型の使い方

19/03/03 16:32:29     19/03/10 14:38:28

Swiftのstring型…

String型は多くのプログラミング言語で用意されている型で、文字列を扱うためのものです。String型自体がなくてもどの言語でも文字列を扱うための型は存在するので、その意味ではSwiftだけでなく普遍的な概念です。

このページではString型全般の知識や、SwiftならではのString型の使い方などについて解説します。

SwiftのString型の基本

まずはSwiftにおけるString型の定義ですが、以下のように定義します。

var str1 : String
var str2 = "これはString型です"
var num = String(123)

一行目はString型を指定するコードです。変数名str1がString型であることを明示しているのですが、型を変数名の後ろに記述するという点に特徴があります。

二行目では文字列を変数に格納しているため、自動的にString型になります。Swiftでは変数の型を型推論で自動的に決定することも可能で、明示してもどちらでも問題ありません。文字列を格納する際は、ダブルクォーテーションで囲います。

三行目では数値をString型にキャストしています。

Swiftでは初期値で型推論を行うことが可能ですが、途中で型を変換するには明示する必要があります。なので、後々の使い方を考えて初期値の型を決めた方が良いです。また、特殊文字としては以下のようなものが使用できます。

\” :ダブルクォート
文字列化のためのダブルクォートではなく、単なる文字列としてダブルクォートを認識させます。

\’ :シングルクォート
ダブルクォート同様に、シングルクォートも単なる文字列と区別させる必要があります。

\r :キャリッジリターン
\n :ラインフィード
改行のためのコードです。

\0 :null文字
\\ :バックスラッシュ

SwiftのString型の基本的な使い方

String型の定義と出力のサンプルコードを紹介します。

var str1 = ""
var str2 = String()

if str1.isEmpty {
    print("str1は空文字です")
}

if str2.isEmpty {
    print("str2は空文字です")
}

上記のサンプルコードを実行すると、以下のようにコンソール出力されます。

str1は空文字です
str2は空文字です

次に、特殊文字のサンプルコードを紹介します。

let str = "test1\ntest2\ntest3"
print(str)

このコードを実行すると、以下のように出力されます。

test1
test2
test3

数値結合のサンプルコードは以下です。

let num = 100
let res = "num = \(num)"
print(res)

実行すると以下のように出力されます。

num = 100

SwiftのStringの応用的な使い方

応用と言っても難しいものではありませんが、上で説明した基本事項を踏まえてやや発展的な使用方法を解説します。

文字列の長さを調べる方法

charactersのcountプロパティを使用することで、String型の文字列の長さを調べることができます。サンプルコードは以下です。

var text = "abcd"
print(text.characters.count)

このコードを実行すると4が出力されます。

文字列を連結する方法

次に文字列を連結する方法を紹介します。サンプルコードは以下です。

var text1 = "a"
var text2 = "b"
var text3 = "c"

var text = text1 + text2
text += text3

print(text)

このコードを実行すると、以下のようにコンソール出力されます。

abc

文字列を比較する方法

文字列の比較には比較演算子を使用します。サンプルコードは以下です。

let text1 = "ABCD"
let text2 = "EFGHIJK"
if text1 == text2 {
    print("同じ値です")
} else if text1 < text2 {
    print("文字列\(text1)より\(text2)の方が大きいです")
} else {
    print("文字列\(text1)より\(text2)の方が小さいです")
}

上記のコードを実行すると、以下のようにコンソール出力されます。

文字列ABCDよりEFGHIJKの方が大きいです

型の変換

他のプログラミング言語でも同じですが、Swiftでも型を変換することができます。

まずはStringからInt型に変換するサンプルコードは以下です。

var str = "12345”
var num = str.toInt()

これでString型がInt型に変換されました。ただしこのコードはSwift2でしか使用できず、Swift3以降では廃止されています。

Swift3では以下のようにInt()イニシャライザを使用します。

var str = "12345"
var num = Int(str)!

print("num = \(num)");

このコードを実行すると、以下のようにコンソール出力されます。

num = 12345

ポイントとしては、「!」を付けなければならない点です。イニシャライザを使う方法でもtoIntで変換する方法でも大差ないのですが、Swiftはこのようなマイナーチェンジが多いです。

いつの間にか使えなくなっているコードがあるので、なぜかエラーが出た際は調べてみる必要があります。次に、IntからStringに変換する方法を紹介します。

IntからStringに変換するには、キャストを使うか、descriptionを指定します。

サンプルコードは以下です。

var num = 100;
var str1 = String(num);
var str2 = num.description

print("str1 = \(str1)");
print("str2 = \(str2)");

上記のソースコードを実行すると以下のようにコンソール出力されます。

str1 = 100
str2 = 100

文字列の検索

rangeOfStringメソッドを使用することで、文字列を検索できます。

サンプルコードは以下です。

let str = "abcdefghij"
if let r = str.rangeOfString("def") {
    print("見つかった")
} else {
    print("見つからない")
}

変数のなかの文字列にはdefが含まれているため、見つかった、と出力されます。

またこの検索方法だと完全一致を前提にしていますが、大文字小文字を無視するオプションを設定することも可能です。

サンプルコードは以下になります。

let str = "abcdefghij"
if let r = str.rangeOfString("DeF", options:.CaseInsensitiveSearch) {
    print("見つかった")
}

変数の中身は小文字ですが、オプションで大文字小文字を無視するコードを書いているため、大文字での検索でも見つかった出力されます。

まとめ

以上、SwiftでStringを扱うための方法を解説してきました。

今回紹介した以外にもいろいろなメソッドが用意されていますが、使い方の流れは同じです。基本的な扱い方を把握していればあとはメソッドの種類がいろいろ用意されていて、似たような形式でできることが複数あるだけです。

今回紹介した内容を把握しておけば、あとはその都度メソッド等を調べて実装すれば問題ありません。

▼Swift関連の記事一覧
1, 【Swiftのフリーランス案件情報付き】仕事やエンジニアの将来性・学習方法!
2, 繰り返し処理に使えるSwiftのfor文とfor-in文の便利な使い方まとめ
3, 条件分岐に便利なSwiftのSwitch文の使い方まとめ
4, アプリ開発でよく使うSwiftの4つの文法を解説します
5, Swiftのoptional型を使いこなすための7つのポイント
6,(この記事)Swiftで文字列を扱うためのstring型の使い方
7, Swiftでの配列の宣言・初期化・代入・参照の方法まとめ
8, 実際の開発現場でのSwiftの変数・定数の使われ方を解説します
9, Swiftでif let文を使って出来ることとguard letの使い分けに関して
10, 開発現場でよく使うSwiftのif文の条件分岐をまとめました
11, SwiftにおけるTupleの使い方とわかりやすく解説します
12, 初心者にオススメのSwiftのサンプルコードをまとめてみました
13, SwiftのString、Int、Doubleの型の変換方法をまとめました
14, 開発現場で役に立つSwiftのクロージャの使い方
15, Swiftでwhileを使って上手に繰り返し処理を行おう
16, Swiftで文字列の長さをチェックするのにlengthを使ってみよう
17, Swiftのdictionaryの使い方と初期化方法をまとめました
18, Swiftの値渡しと参照渡しに関するまとめ
19, Swiftで参照渡ししたい時のinoutの便利な使い方
20, Swiftでfor-in文でindexを使いたい時の方法まとめ
21, Swiftでのクラスとstruct(構造体)の使い分けを解説します

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する