1、字符串转int
//1、String 转 Int
let intStr: String = "12345"
print("str返回的类型是:--->\(type(of: intStr))");
let stringToInt:Int = Int.init(intStr)!
let stringToInt1:Int = Int(intStr)!//也可以简写成
print("stringToInt返回的类型是:--->\(type(of: stringToInt))");
print("stringToInt返回的类型是:--->\(type(of: stringToInt1))");
2、字符串转Double(Float也是一样)
let doubleStr: String = "12345.000"
print("doubleStr返回的类型是:--->\(type(of: doubleStr))");
let stringToDouble:Double = Double.init(intStr)!
let stringToDouble1:Double = Double(intStr)!//也可以简写成
print("stringToDouble返回的类型是:--->\(type(of: stringToDouble))");
print("stringToDouble1返回的类型是:--->\(type(of: stringToDouble1))");
3、字符串转数组
let arrayStr: String = "12345"
print("arrayStr返回的类型是:--->\(type(of: arrayStr))");
let stringToArray:Array = arrayStr.map { String($0) }
print("stringToArray返回的类型是:--->\(type(of: stringToArray))");
print(stringToArray)
let stringToArray1:Array = Array(arrayStr)//也可以简写成
print("stringToArray1返回的类型是:--->\(type(of: stringToArray1))");
print(stringToArray1)
//注意:以上两种方法虽然都能把字符串转变成数组 但是他们的返回类型不一样,第一种返回的是:Array<String> 第二种返回的是:Array<Character> 具体使用哪种方式视需求而定
4、获取字符串长度
let lengthStr: String = "12345"
print("lengthStr字符串的长度=\(lengthStr.count)")
5、根据String字符串固定宽度 获取高度(获取宽度)
let getStringHeightStr:String = "我不知道我有多喜欢你,但如果去见你,我一定用跑,我说去见你的这一路上风都是甜的,这一路没有桃花,只见你你给我种下的白铃兰"
let stringHeight:CGFloat = self.getLabHeigh(testStr: getStringHeightStr, font: UIFont.systemFont(ofSize: 18), width: 200)
print("stringHeight=\(stringHeight)")
//MARK:固定宽度根据字符串长度返回高度 (此函数时NSString的函数 所以在使用的时候 需要把 String 转成 NSString )
func getLabHeigh(testStr:String,font:UIFont,width:CGFloat) -> CGFloat {
let statusLabelText: NSString = testStr as NSString
let size = CGSize.init(width: width, height: CGFloat(MAXFLOAT))
let dic = NSDictionary(object: font, forKey: NSAttributedString.Key.font as NSCopying)
let strSize = statusLabelText.boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: dic as? [NSAttributedString.Key : Any], context: nil).size
return strSize.height
}
6、字符串截取
let tmpString = "一二三四五六七八九十"
print(tmpString[tmpString.startIndex])//截取字符串第一个字符
//通过调用 String 的 index(before:) 或 index(after:) 方法,可以立即得到前面或后面的一个索引。你还可以通过调用 index(_:offsetBy:) 方法来获取对应偏移量的索引
print(tmpString[tmpString.index(after: tmpString.startIndex)])//截取字符串第二个字符
print(tmpString[tmpString.index(before: tmpString.endIndex)])//截取字符串最后一个字符
let someIndex = tmpString.index(tmpString.startIndex, offsetBy: 3)//截取字符串下标为3的字符
print(tmpString[someIndex])
let anotherIndex = tmpString.index(tmpString.endIndex, offsetBy: -3)//截取字符串下标为(tmpString.count-3)的字符
print(tmpString[anotherIndex])
//截取某字符串的第3个字符到第6个字符范围的字符串(区间 类似OC的 NSMakeRange(3,6) )
let index3 = tmpString.index(tmpString.startIndex, offsetBy: 3)
let index4 = tmpString.index(tmpString.startIndex, offsetBy: 6)
let sub4 = tmpString[index3..<index4]
print("sub4=\(sub4)")
let startRang = tmpString.range(of: "二三")!
let endRang = tmpString.range(of: "六七")!
print(tmpString[...startRang.lowerBound]) //下界
print(tmpString[startRang.upperBound...])//上界
print(tmpString[startRang.upperBound..<endRang.lowerBound]) //区间不包含两端
7、字符串拼接
let aa = "aa"
let bb = "bb" + "dd"
print(aa + bb)
print(aa + bb + "cc")
print(aa.appending(bb))
8、字符串包含(contains)
let cc = "ABCDEFG"
print(cc.contains("D"))
9、字符串相等 (== 或 elementsEqual)
let dd = "456和789"
let ee = "456和789"
print(dd==ee)
print(dd.elementsEqual(ee))
10、字符串富文本
let textLabel = UILabel.init(frame: CGRect.init(x: 50, y: 100, width: kWidth-100, height: 200))
self.view.addSubview(textLabel)
let labelstr = "我不知道我有多喜欢你,但如果去见你,我一定用跑,我说去见你的这一路上风都是甜的,这一路没有桃花,只见你你给我种下的白铃兰"
textLabel.numberOfLines = 0
textLabel.backgroundColor = .orange
textLabel.attributedText = self.changeFontColor(totalString:labelstr, subString: "这一路风都是甜的", font: UIFont.systemFont(ofSize: 20), textColor: .red)
//MARK:swift富文本
public func changeFontColor(totalString: String, subString: String, font: UIFont, textColor: UIColor)-> NSMutableAttributedString {
let attStr = NSMutableAttributedString.init(string: totalString)
if totalString.contains(subString) {
let startRang = totalString.range(of: subString)!
let tmp = totalString[startRang.lowerBound...]
attStr.addAttributes([NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.font: font], range: NSRange.init(location: totalString.count-tmp.count, length: subString.count))
return attStr
}
print("请注意富文本设置无效,被设置的目标字符串在原字符串中找不到")
return attStr
}