開発環境
- OS X Mavericks - Apple(OS)
- Xcode 6.0 Beta
- Swift (プログラミング言語)
初めてのPerl 第6版 (Randal L. Schwartz (著)、brian d foy (著)、Tom Phoenix (著)、近藤 嘉雪 (翻訳)、オライリージャパン)、16章(プロセス管理)の16.9(練習問題)3.をSwiftで考えてみる。
16.9(練習問題)3.
コード(Xcode)
main.swift
// // main.swift // sample3 // // Created by kamimura on 8/26/14. // Copyright (c) 2014 kamimura. All rights reserved. // import Foundation let date = NSDate() let calendar = NSCalendar.currentCalendar() let comp = calendar.component(NSCalendarUnit.WeekdayCalendarUnit, fromDate:date) let wday:String = calendar.weekdaySymbols[comp - 1] as String if wday.indexAt(0) == "S" { println("go play") } else { println("get to work") } let reg = NSRegularExpression(pattern: "^S.*", options: nil, error: nil) if reg.matchesInString(wday, options: nil, range:NSRange(location: 0, length: wday.length)).isEmpty { println("get to work") } else { println("go play") } for w in calendar.weekdaySymbols { let wday:String = w as String println(wday) if reg.matchesInString(wday, options: nil, range:NSRange(location: 0, length: wday.length)).isEmpty { println("get to work") } else { println("go play") } }
string.swift
// // string.swift // string // // Created by kamimura on 8/10/14. // Copyright (c) 2014 kamimura. All rights reserved. // import Foundation extension String { var swapcaseString:String { var result: String = "" for ch in self { let s = String(ch) result += s.uppercaseString == s ? s.lowercaseString : s.uppercaseString } return result } var isUpper:Bool { return self.uppercaseString == self } var isLower:Bool { return self.lowercaseString == self } var length:Int { return (self as NSString).length } var strip:String { return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())} var floatValue:Float { return (self as NSString).floatValue } var doubleValue:Double { return (self as NSString).doubleValue } func count(sub:String) -> Int { var result:Int = 0 var s = self let index:String.Index = "a".endIndex while s != "" { if s.hasPrefix(sub) { result += 1 s = s.substringFromIndex(sub.endIndex) } else { s = s.substringFromIndex(index) } } return result } func find(sub:String, start:Int = 0, end:Int? = nil) -> Int { var s = self as NSString var s_temp = s.substringFromIndex(start) let end_temp:Int = end ? end! : s.length for i in start..<end_temp { if (s_temp.hasPrefix(sub)) { return i } s_temp = s.substringFromIndex(i + 1) as NSString } return -1 } func indexAt(i:Int) -> String { if i >= 0 { return (self as NSString).substringWithRange(NSRange(location: i, length: 1)) } let new_i = self.length + i return (self as NSString).substringWithRange(NSRange(location: new_i, length: 1)) } func replace(old_str:String, new_str:String) -> String { return self.stringByReplacingOccurrencesOfString(old_str, withString: new_str) } func slice(start:Int=0, end:Int?=nil) -> String { let s = self as NSString var new_end:Int if (end) { new_end = end! } else { new_end = s.length } return s.substringWithRange(NSRange(location: start, length:new_end - start)) } func split(sep:String = "") -> [String] { var result:[String] = [] if (sep == "") { for ch in self { result.append(String(ch)) } return result } var s:String = self var len = sep.length var temp:String = "" while s != "" { if s.hasPrefix(sep) { if temp != "" { result.append(temp) temp = "" } s = s.slice(start: len) } else { temp += s.slice(start: 0, end: 1) s = s.slice(start: 1) } } if temp != "" { result.append(temp) } return result } var reversed:String { return "".join(self.split().reverse()) } }
入出力結果(Console Output)
get to work get to work Sunday go play Monday get to work Tuesday get to work Wednesday get to work Thursday get to work Friday get to work Saturday go play Program ended with exit code: 0
0 コメント:
コメントを投稿