Skip to content

Instantly share code, notes, and snippets.

@KentarouKanno
Last active July 25, 2019 02:18
Show Gist options
  • Save KentarouKanno/17bc2218c08d07413fc7 to your computer and use it in GitHub Desktop.
Save KentarouKanno/17bc2218c08d07413fc7 to your computer and use it in GitHub Desktop.
String

String

★ 生成

// 全て"1"という文字列で生成
var str = "1"
var str = "\(1)"
var str = "\("1")"
var str = String("1")
var str = String(1)
var str = 1.description

★ 文字列を指定文字で分割した配列として返す

// --- split ---

let str = "aa bb cc"

var map_splitValue = str.split { $0 == " " }
//=> ["aa", "bb", "cc"]

type(of: map_splitValue)
//=> Array<Substring>.Type

★ 指定文字列で文字列配列を結合した文字列を返す

var strArray = ["a", "b", "c"]
var joinString = strArray.joinWithSeparator(",")
//=> "a,b,c"

★ 空文字かどうかの判定

var str = ""

if str.isEmpty {
    print("空文字")
}

★ 文字列結合

var numString = "123" + 456.description + "\(789)"
//=> numString = "123456789"

extension

extension String {
    var length: Int {
        get { return self.count }
    }
}

★ 文字列を文字単位で分割して配列に格納する1

var str:String = "あいうえ"

let charactersArray = str.characters.map {
    String($0)
}

charactersArray
//=> ["あ", "い", "う", "え"]

★ 文字列を文字単位で分割して配列に格納する2

var str = "あいうえ"

let charactersArray = Array(str.characters)
//=> ["あ", "い", "う", "え"]

★ 文字数を文字単位で分割して各配列に格納する

var str:String = "あいうえ"

var a1 = [String]()
var a2 = [String]()
var a3 = [String]()
var a4 = [String]()
var a5 = [String]()

str.characters.enumerate().forEach {
    
    // [a1,a2,a3,a4,a5][$0.index].append(String($0.element))
    
    switch $0.index {
    case 0: a1.append(String($0.element))
    case 1: a2.append(String($0.element))
    case 2: a3.append(String($0.element))
    case 3: a4.append(String($0.element))
    case 4: a5.append(String($0.element))
    default: ()
    }
}

print(a1) //=> ["あ"]
print(a2) //=> ["い"]
print(a3) //=> ["う"]
print(a4) //=> ["え"]
print(a5) //=> []

★ 任意の文字列を検索してrangeを取得する

var str = "abcdefghi"

// 任意の文字列ある位置を取得する、取得できない場合はnilを返す
if let range = str.range(of: "cde") {
    
    let low = range.lowerBound
    //=> 2
    let upper = range.upperBound
    //=> 5
    
    let s = str.replacingCharacters(in: range, with: "CDE")
    //=> "abCDEfghi"
}

NSString

★ 0埋め
参考URL:[iOS8] Swiftで数字の桁数をゼロ埋めする方法

// 4桁の0埋め
let value = NSString(format: "%04d", 123)
//=> 0123

★ 文字列切り出し

let str = "1234567890"

//指定した値までを取得
let toIndex = (str as NSString).substringToIndex(8)
//=> "12345678"

//指定した値以降を取得
let fromIndex = (str as NSString).substringFromIndex(6)
//=> "7890"

//指定した値から指定した値まで
let range1 = NSMakeRange(6,2)
let withRange = (str as NSString).substringWithRange(range1)
//=> "78"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment