练习写的代码:
知识点:
取程序名
let executableName = (Process.arguments[0] as NSString).lastPathComponent 取命令行参数个数 let argCount = Process.argc 取参数数组(比如第一个参数) let argument = Process.arguments[1]字符串操作
截取 argument.substringFromIndex(argument.startIndex.advancedBy(1))) 替换: self.lowercaseString.stringByReplacingOccurrencesOfString(" ", withString: "") 反转: String(str.characters.reverse()) 排序: str.characters.sort() 去掉换行符 str = NSString(data: inputData, encoding: NSUTF8StringEncoding)! str.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet()) 扩展 命名StringExtension.swift 语法extension String{ func methodA() {}} 比较== 比较字符串相等, "hello" == "hello" 比较数组相等 ["hello", "world"] == ["hello", "world"]标准输入STDIN
func getInput() -> String { // 使用OC的API //1 let keyboard = NSFileHandle.fileHandleWithStandardInput() //2 let inputData = keyboard.availableData //3 let strData = NSString(data: inputData, encoding: NSUTF8StringEncoding)! //4 return strData.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet()) // 或者使用swift中新的API //return readLine()! }标准及错误输出STDOUT, STDERR
func writeMessage(message: String, to: OutputType = .Standard) { switch to { case .Standard: print("\u{001B}[;m\(message)") case .Error: fputs("\u{001B}[0;31m\(message)\n", stderr) }}
定义enum
enum OutputType { case Error case Standard}enum OptionType: String { case Palindrome = "p" case Anagram = "a" case Help = "h" case Quit = "q" case Unknown init(value: String) { switch value { case "a": self = .Anagram case "p": self = .Palindrome case "h": self = .Help case "q": self = .Quit default: self = .Unknown } }}