【Swift5】文字列操作(String型)チートシート〜置換,結合,削除,比較,取得〜

サトリク

Swift5の文字列操作の記事がなかったので、書いてみようと思います。

間違いや、追加してほしい文字列操作があったらコメントやDMで教えてください。

動作環境

item Version
Swift 5.1.3
Xcode 11.3

文字列操作

文字列の宣言・定義する

let str: String = "文字列"

: Stringは、省略できます。入っている値を見て、何の型か判断してくれます。これを型推論と言います。

let str = "文字列"

 

文字列をカウントする

let str = "HelloWorld!"
let cnt = str.count
print(cnt)
//実行結果:11

こんな書き方もできます。

let cnt = "HelloWorld!".count
print(cnt)
//実行結果:11

 

文字列を連結する

let str1 = "Hello"
let str2 = "World!"
let str3 = str1 + str2
print(str3)
//実行結果:HelloWorld!

 

2つの文字列が一致しているかどうか比較する

let str1 = "りんご"
let str2 = "りんご"
if str1 == str2 {
    print("等しい")
} else {
    print("異なる")
}
//実行結果:等しい

 

文字列の中に改行を入れる

let str = "Hello\nWorld!"
print(str)
/*実行結果:
        Hello
        World!
*/

 

文字列の一部の文字を置換する

let str = "私はヒヨコです"
let newStr = str.replacingOccurrences(of: "ヒヨコ", with: "ニワトリ")
print(newStr)
//実行結果:私はニワトリです。

 

英数小文字を大文字に変換する

let str = "abcdefg"
let uppercaseStr = str.uppercased()
print(uppercaseStr)
//実行結果:ABCDEFG

 

英数大文字を小文字に変換する

let str: String = "ABCDEFG"
let lowerStr = str.lowercased()
print(lowerStr)
//実行結果:abcdefg

 

先頭からn番目までの文字を取得する

let str = "あいうえお"
print(str.prefix(1))
print(str.prefix(2))
print(str.prefix(3))
/*実行結果:
      あ
      あい
      あいう
*/

 

先頭からn番目まで以外の文字を取得する

let str = "あいうえお"
print(str.suffix(str.count - 1))
print(str.suffix(str.count - 2))
print(str.suffix(str.count - 3))
/*実行結果:
      いうえお
      うえお
      えお
*/

 

先頭からn番目までを削除

let str = "あいうえお"
print(str.dropFirst(1))
print(str.dropFirst(2))
print(str.dropFirst(3))
/*実行結果:
      いうえお
      うえお
      えお
*/

 

末尾からn番目までの文字を取得する

let str: String = "あいうえお"
print(str.suffix(1))
print(str.suffix(2))
print(str.suffix(3))
/*実行結果:
      お
      えお
      うえお
*/

 

末尾からn番目まで以外の文字を取得する

let str: String = "あいうえお"
print(str.prefix(str.count - 1))
print(str.prefix(str.count - 2))
print(str.prefix(str.count - 3))
/*実行結果:
      あいうえ
      あいう
      あい
*/

 

先頭からn番目までを削除

let str = "あいうえお"
print(str.dropLast(1))
print(str.dropLast(2))
print(str.dropLast(3))
/*実行結果:
      あいうえ
      あいう
      あい
*/

 

指定の文字列が含まれているか検索する -> bool

let str : String = "あいうえお"
print(str.contains("いう"))
//実行結果:true

 

先頭の文字列を比較する -> bool

let str : String = "あいうえお"
let result = str.hasPrefix("あいう")
print(result)
//実行結果:true

 

末尾の文字列を比較する

let str : String = "あいうえお"
let result = str.hasSuffix("えお")
print(result)
//実行結果:true

 

文字列の前後の空白を削除する

let str = " satoriku blog "
print(str.trimmingCharacters(in: .whitespaces))
//実行結果:satoriku blog

 

文字列から指定した文字列を削除する

let str = "あいうえお"
print(str.replacingOccurrences(of:"いう", with:""))
//実行結果:あえお

文字列をカンマで分割する

let str = "ab,cd,ef,g"
print(str.components(separatedBy: CharacterSet(charactersIn: ",")))
//実行結果:["ab", "cd", "ef", "g"]

 

数値を文字列に変換する

let num: Int = 1998
let year: String = String(num) + "年"
print(year)
//実行結果:1998年

 

文字列を数値に変換する

let str: String = "70"
let total: Int = Int(str)! + 30
print(total)
//実行結果:100

 

ひらがなからカタカナに変換する

let kana = "あいうえお"
print(kana.applyingTransform(.hiraganaToKatakana, reverse: false)!)
//実行結果:アイウエオ

カタカナからひらがなに変換する

let kana = "アイウエオ"
print(kana.applyingTransform(.hiraganaToKatakana, reverse: true)!)
//実行結果:あいうえお

文字列を分割する

let str1 = "sato riku blog"
let array = str1.components(separatedBy: " ")
print(array[0])
print(array[1])
print(array[2])
/*実行結果:
      sato
      riku
      blog
*/

 

先頭を0埋めする

let num = 3
print(String(format: "%04d",num))
print(String(format: "%03d",num))
print(String(format: "%02d",num))
/*実行結果:
      0003
      003
      03
*/

 

末尾を0埋めする

let num = 0.3
print(String(format: "%0.4f",num))
print(String(format: "%0.3f",num))
print(String(format: "%0.2f",num))
/*実行結果:
      0.3000
      0.300
      0.30
*/

 

まとめ

ここまで読んでくださりありがとうございます。

お役に立てたら嬉しいです。

新しい文字列操作を覚えるたびに、この記事を更新していきます。

 

サトリク

このブログ(satorikublog)の筆者サトリクが、初心者の方に教えるサービスをはじめました。

気軽にご相談ください!

詳細はこちら