サトリク
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)の筆者サトリクが、初心者の方に教えるサービスをはじめました。
気軽にご相談ください!