facebook twitter hatena line google mixi email

Ios/swift/数字と文字

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

リアルタイム実行環境構築

  1. xcodeを起動後"get started with a playground"を選択
  2. 左にコードを記述すると、右に結果がリアルタイムで表示される

定義

let a = 1 // letで定数定義
var b = a + 2 // varで変数定義
var str = "Hello, playground"

データ型定義

Int, Double, Float, String, Bool, Stringなどがある

var a:Int = 1
var c:UInt = 10 // 正の数のみ
var d:Int32 = 4 // 32bit数

数字を文字へ

let num = 1
"hello" + num.description
"hello" + String(num)

文字を数字へ

var id = "1234"
print(Int(id)) // 1234

参考:http://qiita.com/sasagin/items/28c3af9a25151f8ab4a6

指定した文字が含まれているか

var url : String = "ttp://example.com"
if url.containsString("http://") || url.containsString("https://") {
    print("httpが含まれる")
}

文字置換

let str = "hogepiyo"
str = str.stringByReplacingOccurrencesOfString("ge", withString: "ho") // hohopiyo

正規表現置換

var html: String = "hote\nhote"
html = html.stringByReplacingOccurrencesOfString("\n", withString:"
", options:NSStringCompareOptions.RegularExpressionSearch, range: nil)

StringからOptionalを消す

print(test) // Optional("aaa")
let test2 = test as! String // "aaa"

正規表現によるurl抽出

import UIKit
let pattern = "(https?://[-_.!‾*'()a-zA-Z0-9;/?:@&=+$,%#]+)"
let str: String = "<img src=\"http://k.yimg.jp/images/top/sp2/cmn/logo-ns-131205.png\" ><a href=\"http://yahoo.co.jp?page=1#jpg\" >"
let regex = try! NSRegularExpression(pattern: pattern, options: .CaseInsensitive)
let matches = regex.matchesInString(str, options: [], range: NSMakeRange(0, str.characters.count))
var results: [String] = []
matches.forEach { (match) -> () in
    results.append( (str as NSString).substringWithRange(match.rangeAtIndex(1)) )
}
print(results)
["http://k.yimg.jp/images/top/sp2/cmn/logo-ns-131205.png", "http://yahoo.co.jp?page=1#jpg"]

画像urlを抽出

       let pattern = "(https?://[-_.!‾*'()a-zA-Z0-9;/?:@&=+$,%#]+).(jpg|png|gif|jpeg)"
       let regex = try! NSRegularExpression(pattern: pattern, options: .CaseInsensitive)
       let matches = regex.matchesInString(str, options: [], range: NSMakeRange(0, str.characters.count))
       var results: [String] = []
       matches.forEach { (match) -> () in
           if (str as NSString).substringWithRange(match.rangeAtIndex(2)) != "" {
                   results.append( String((str as NSString).substringWithRange(match.rangeAtIndex(1))) + "." + String((str as NSString).substringWithRange(match.rangeAtIndex(2))) )
           }
       }
       return results

配列内検索

phpでいうin_array()

let names: [String] = ['aa', 'bb', 'cc']
let str = 'aa'
if names.contains(str) {