LoginSignup
7
14

More than 5 years have passed since last update.

stringをこねくり回すネタ集 swift 3.0

Last updated at Posted at 2017-06-29

これだけ読んでおけば、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

ひとまずここまで!どんどん足していく予定です。

7
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
14