これだけ読んでおけば、stringがいじり放題って感じのネタ集作りました〜。
stackoverflow いちいち調べるの面倒なので、自分用メモとして。
1. substring()
var str = "Hello, playground"
substring(to: )
startIndex()は最初から読んでoffset個目の数字、endIndex()は最後から読む
Stringの中の文字をIndexで指定して引っ張りだす
let index1 = str.index(str.startIndex, offsetBy: 5)
str.substring(to: index) // Hello
let index2 = str.index(str.endIndex, offsetBy: -12)
print(str.substring(to: index3)) // playground
substring(from: )
指定した分以外を取って来る
オフセット後の文字全部取って来る。
let index3 = str.index(str.startIndex, offsetBy: 7)
str.substring(from: index) // playground
substring(with: )
後ろと前をそれぞれ指定する, つまりレンジを指定する
let start = str.index(str.startIndex, offsetBy: 7)
let end = str.index(str.endIndex, offsetBy: -6)
let range = start..<end
print(str.substring(with: range)) // play
2. range()
var str = "Hello, playground"
Stringの中に特定のStringが存在するか確認する!
if str.range(of:"Hello") != nil{
print("exists!") //Exists
}
大文字と小文字を無視して、範囲指定をする!
if str.lowercased().range(of:"hello") != nil {
print("exists, again!")
}
3. replacingOccurrences(of: (これを) , with: (これに交換), options: , range: )
let aString = "This is my string"
Stringの中を探して別なStringと交換する!
let newString = aString.replacingOccurrences(of: " ", with: "+", options: .literal, range: nil)
print(newString) //This+is+my+string
4. components(seperatedBy: )
スペースで切断
セパレーター(ナイフ的な?)でぶった切ったStringをArrayにする。
let aString = "This is my string"
let toArray = aString.components(separatedBy: " ")
print(toArray) // ["This", "is", "my", "string"]
CharacterSetで切断
自分で、もしくは用意された文字の配列でStringをArrayに分けることができる。
let word = "flower"
let wordTwo = "flour"
let separators = CharacterSet(charactersIn: wordTwo)
let match = word.components(separatedBy: separators)
// 結果: ["", "", "", "we", ""]
//"flower"の中に、"flour"の[f, l, o, r]が含まれていたので、それ以外をプリント
5. Array(string.characters)
↑上記と同じく、StringをArrayにするものだけど、Character(文字)ごとにArrayにする方法
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters) // ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
6. [String].join()
String Arrayをつなぎ合わせてくれる! ※join()はstringしか使えないので、charの配列はつなげられない
let str = ["This", "is", "my", "string"]
let backToString = toArray.joined(separator: "+") // This+is+my+string
7. String()で文字配列を繋げる
char arrayをつなげたい場合は、単純にString()にキャストしてしまえばOK.
let characters = ["H", "e", "l", "l", "o"]
print(String(characters)) // Hello