swift六-字符串
2017-04-06 本文已影响0人
Zz橙淞
/*字符串*/
//初始化
var emptyString = "" // 空字符串字面量
var anotherEmptyString = String() // 初始化方法
// 两个字符串均为空并等价。
//判断该字符串是否为空
if emptyString.isEmpty {
print("Nothing to see here")
}
//字符串的可变性
var variableString = "Horse"
variableString += " and carriage"
//let constantString = "Highlander"
//constantString += " and another Highlander"
// 这会报告一个编译错误 (compile-time error) - 常量字符串不可以被修改。
//使用字符串
//通过for in 循环来遍历字符串中的每一个字符的值
for character in "Dog!?".characters {
print(character)
}
//通过标明一个Character类型并用字符字面量进行赋值,可以建立一个独立的字符串常量或变量:
let exclamationMark:Character = "!"
let carCharacters:[Character] = ["C", "a", "t", "!", "?"]
let catString = String(carCharacters)
print(catString)
//链接字符串和字符,可以用 + 号拼接字符串
let string1 = "Hello"
let string2 = " there"
var welcome = string1 + string2
//可以用+=将一个字符串添加到一个已经存在的字符串变量上
var instruction = "look over"
instruction += string2
//可以用append()方法将一个字符附加到字符串变量的尾部
welcome.append(exclamationMark)
//字符串插入
//字符串插值是一种构建新字符串的方式,可以在其中包含常量、变量、字面量和表达式。 您插入的字符串字面量 的每一项都在以反斜线为前缀的圆括号中:
let multiplier = 3
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)" // message 是 "3 times 2.5 is 7.5"
//Unicode
//Unicode是一个国际标准,用于文本的编码和表示,可以用标准格式表示任意语言。并能够对文本文件或者网页这样的外部资源中的字符串进行读写操作,swift的string和Character类型是完全兼容Unicode标准的
//计算字符数量
let unusualMenagerie = "Koala ?, Snail ?, Penguin ?,Dromedary ?"
print("unusualMenagerie has \(unusualMenagerie.characters.count) characters")
//访问和修改字符串
//字符串的索引
let greeting = "Guten Tag!"
greeting[greeting.startIndex]
greeting[greeting.index(before: greeting.endIndex)]
greeting[greeting.index(after:greeting.startIndex)]
let index = greeting.index(greeting.startIndex,offsetBy: 7)
//插入和删除
var welcome2 = "Hello"
welcome2.insert("!", at: welcome2.endIndex)//在最后插入!
welcome2.insert(contentsOf:" there".characters, at: welcome2.index(before: welcome2.endIndex))
print(welcome2)
//删除
welcome2.remove(at: welcome2.index(before: welcome2.endIndex))
let range = welcome2.index(welcome2.endIndex, offsetBy: -8)..<welcome2.endIndex
welcome2.removeSubrange(range)
print(welcome2)
//比较字符串
var string = "XuBaoAiChiYu_QQ_1045214799"
let compareStr = "XuBaoAiChiYu_QQ_1045214799"
let searchRange = string.characters.index(string.startIndex, offsetBy: 5)..<string.characters.index(before: string.endIndex)
print(searchRange)
//前缀
var isHas = string.hasPrefix("Xu")
print("hasPrefix:\(isHas)")
//后缀
isHas = string.hasSuffix("1045214799")
print("hasSuffix:\(isHas)")
//全比较是否相同
isHas = string == compareStr
print(isHas)
//比较大小
var result = string.compare(compareStr)
print(result.hashValue)
//添加比较范围
result = string.compare(compareStr, options: NSString.CompareOptions.caseInsensitive, range: searchRange, locale: nil)
print("result:\(result.hashValue)")
// 返回两个字符串相同的前缀
string = string.commonPrefix(with: compareStr, options: NSString.CompareOptions.caseInsensitive)
print(string)
//字符串转int类型
var atr:String = "12345"
func stringToInt(atr:String) -> NSInteger {
let string = atr
var int: Int?
if let doubleValue = Int(string) {
int = Int(doubleValue)
}
if int == nil
{
return 0
}
return int!
}t
var intNum:NSInteger = stringToInt(atr: atr)
print(intNum)
1.CGFloat 转化成String
let strs:String = String.init(format: "%.2f", order.fare!)
2.String 转化成CGFloat
func StringToFloat(str:String)->(CGFloat){
let string = str
var cgFloat: CGFloat = 0
if let doubleValue = Double(string)
{
cgFloat = CGFloat(doubleValue)
}
return cgFloat
}