博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift编写命令行工具
阅读量:6199 次
发布时间:2019-06-21

本文共 1872 字,大约阅读时间需要 6 分钟。

hot3.png

原文:

练习写的代码:

知识点:

取程序名

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        }    }}

 

转载于:https://my.oschina.net/uniquejava/blog/685537

你可能感兴趣的文章
我的友情链接
查看>>
最近状态有点儿不好
查看>>
2015Android移动开发应用主流菜单模式
查看>>
关于 devops
查看>>
我的友情链接
查看>>
Linux 面试题
查看>>
nagios监控公司内部主机配置
查看>>
php截取字符串内容
查看>>
【实战】mysql-MHA企业真实案例
查看>>
GridView在电视上注意事项
查看>>
Session机制解析
查看>>
5月.xyz域名注册总量TOP10:中国5家域名商上榜
查看>>
阿里云中间件推出全新开发者服务
查看>>
Oracle官方文档中文版-SQLPlus快速参考
查看>>
(转)shell 脚本date时间格式
查看>>
19. 中介者模式
查看>>
系统提权方法大汇总
查看>>
Linux中更改转移mysql数据库目录的步骤
查看>>
我的友情链接
查看>>
MySQL一次死锁的问题
查看>>