本文内容包括 NSNumber、NSString、NSArray、NSDictionary、NSSet
NSNumber
数字格式化用法
let number = 123456789
let numberObj = NSNumber(integerLiteral: number)
//1、设置数字格式化
let numberformatter = NumberFormatter()
//2、十进制数字
numberformatter.numberStyle = .decimal
var strNumber = numberformatter.string(from: numberObj)
print(strNumber!) //123,456,789
//3、科学计数法
numberformatter.numberStyle = .scientific
strNumber = numberformatter.string(from: numberObj)
print(strNumber!) //1.23456789E8
//4、百分数
numberformatter.numberStyle = .percent
strNumber = numberformatter.string(from: numberObj)
print(strNumber!) //12,345,678,900%
//5、货币
numberformatter.numberStyle = .currency
strNumber = numberformatter.string(from: numberObj)
print(strNumber!) //¥123,456,789.00
//6、大写数字
numberformatter.numberStyle = .spellOut
strNumber = numberformatter.string(from: numberObj)
print(strNumber!) //一亿二千三百四十五万六千七百八十九
//7、设置本地化标识
numberformatter.locale = Locale(identifier: "en_US")
numberformatter.numberStyle = .currency
strNumber = numberformatter.string(from: numberObj)
print(strNumber!) //$123,456,789.00
numberformatter.numberStyle = .spellOut
strNumber = numberformatter.string(from: numberObj)
print(strNumber!) //one hundred twenty-three million four hundred fifty-six thousand seven hundred eighty-nine
NSNumber 与 swift 原生数字类型之间的桥接
let numberValue = 123
//基本数据类型转换为number
let numberObj1 = NSNumber(integerLiteral: numberValue) //通过构造函数转换
let numberObj2 = numberValue as NSNumber //桥接转换
//number转换为基本数据类型
let changeValue1 = numberObj1.intValue //通过方法转换
let changeValue2 = numberObj1 as? Int //桥接转换
NSString
不可变字符串基本用法
var str1 = "abcde"
var str2: NSString = "12345"
var str: NSString
//1、字符个数
print(str1.characters.count) //5
print(str2.length) //5
//2、创建一个新的字符串
str = NSString(string: str2)
print(str) //12345
//3、拼接字符串
str = str2.appending(str2 as String) as NSString
print(str) //1234512345
//4、判断字符串是否相等
if str.isEqual(to: str2 as String) {
//相等
} else {
//不相等
}
//5、比较字符串大小
let result: ComparisonResult = str.compare(str2 as String)
switch result {
case .orderedAscending:
print("大于")
case .orderedSame:
print("等于")
case .orderedDescending:
print("小于")
}
//6、大写字符串
print(str1.uppercased()) //ABCDE
//7、小写字符串
print(str1.lowercased()) //abcde
//8、从下表1到3的位置截取字符串
var temp = str2.substring(from: 1) as NSString
let newStr = temp.substring(to: 2) as NSString
print(newStr) //23
//9、字符串查找
var range = str2.range(of: "23")
if range.location == NSNotFound {
//没有查找到字符串
} else {
print("字符串的位置为:\(range.location), 长度为:\(range.length)")
//字符串的位置为:1, 长度为:2
}
可变字符串基本用法
var str1: NSString = "Objective-C"
var str2: NSString
var replace: NSString
var mStr: NSMutableString
var range: NSRange
//1、从不可变字符串创建可变字符串
mStr = NSMutableString(string: str1)
//2、插入字符串
mStr.insert("java", at: mStr.length)
print(mStr)
//3、拼接字符串
mStr.append("C")
print(mStr)
//4、删除字符串
mStr.deleteCharacters(in: NSMakeRange(11, 5))
print(mStr)
//5、查找范围
range = mStr.range(of: "Obj")
print(range)
//6、替换字符串
mStr.replaceCharacters(in: NSMakeRange(1, 2), with: "sun")
print(mStr)
数组
数组与swift类型转换
var str = "a b c d"
var arr = str.components(separatedBy: " ")
//将原生数组转化为NSArray
let foundaryArr = arr as NSArray
//将NSAarray转换为swift类型数组
let swiftArr = foundaryArr as [AnyObject]
字典
字典与swift类型转换
var str1 = "a b c d"
var str2 = "1 2 3 4"
let keys = str1.components(separatedBy: " ")
let values = str2.components(separatedBy: " ")
let foundationDic = NSDictionary(objects: values, forKeys: keys as [NSCopying])
//将NSDictionary转换为swift原生数据类型 [NSObject: AnyObject]
let swiftDic = foundationDic as [NSObject: AnyObject]
print(swiftDic.description)
//将原生数据类型转化为NSDictionary
let dic = swiftDic as NSDictionary
NSSet
NSSet与swift类型转换
var nsset: NSSet = ["1", "2"]
//将NSSet 转化为 set
var swiftSet = nsset as Set<NSObject>
//将set转换为NSSet
var set = swiftSet as NSSet