swift 字符串的截取 以及 Range 的用法
来源:互联网 发布:传智软件科技有限公司 编辑:程序博客网 时间:2024/05/23 01:18
func someMethodOfRange() {
/**
* 字符串与Range的用法
*/
//1.截取字符串(字符)在整个字符串中所在的位置,返回的类型为 Index
var str = "abcdefghi"
let startIndex = str.rangeOfString("cde")!.startIndex
print(startIndex)//2
let endIndex = str.rangeOfString("cde")!.endIndex
print(endIndex)//5
//2、根据字符串的索引来获取对应的字符
let text = "abcdefghi"
let index2 = text.startIndex.advancedBy(2)//will call succ 2 times
print(index2)//2
let lastChar: Character = text[index2]//now we can index!
print(lastChar)//c
let lastChar2 = text.characters[index2]//will do the same
print(lastChar2)//c
//3.截取字符串(字符)在整个字符串中所在的范围、返回值类型 Range<Index>
let range: Range<String.Index> = text.rangeOfString("bc")!
print(range)//1..<3
let index3: Int = text.startIndex.distanceTo(range.startIndex)
print(index3)//1
let index4: Int = text.startIndex.distanceTo(range.endIndex)
print(index4)//3
print(text.characters.count)//9
let abc = "@救123"
print(abc.characters.count)//5
//4.0 Index --> Int
let range:Range<String.Index> =self.text!.rangeOfString(text)!
let index3: Int =self.text!.startIndex.distanceTo(range.startIndex)
let index4: Int =self.text!.startIndex.distanceTo(range.endIndex)
//一个字符串。指标值可以通过调用predecessor()方法访问其先前 指标,其指标successor()下一个指标调用方法。字符串中的任何指标可从任何其他指数通过把这些方法结合在一起,或通过使用--(_:)方法。试图访问一个字符串的范围以外的索引会引发一个运行时错误
let greeting = "123456789"
greeting[greeting.startIndex]
print(greeting)
print("起使位置\(greeting.startIndex)")//0
print("终点位置\(greeting.endIndex)")//9
print(greeting[greeting.startIndex])//1
greeting[greeting.endIndex.predecessor()]
print(greeting[greeting.endIndex.predecessor()])//9
print(greeting.endIndex.predecessor())//8
print(greeting.startIndex.successor())//1
greeting[greeting.startIndex.successor()]
print(greeting[greeting.startIndex.successor()])//2
let index = greeting.startIndex.advancedBy(7)
greeting[index]
print(greeting[index])//8
//试图在字符串的范围以外的索引处访问一个字符,将引发一个运行时错误。”
//greeting[greeting.startIndex.predecessor()]//cuowu
//print(greeting[greeting.endIndex])//cuowu
//越界
//greeting[greeting.endIndex]
//greeting.endIndex.successor()
//““Use the <indices> property of the <characters> property to创建一个字符串中访问单个字符的所有索引的范围。”
for index in greeting.characters.indices {
print("\(greeting[index])",terminator:"")
// print("**")
}
}
//相关的应用:在UILabel里面,不同文本显示不同字体的大小
extension UILabel {
/*
*设置text的字体大小
*/
func settingLabelTextKitWithText(text:String,font:UIFont) {
if text.isEmpty {//通过检查其 Boolean 类型的 isEmpty 属性来判断该字符串是否为空:
print("什么都没有")
return
}else {
//方法1
let attrstring:NSMutableAttributedString =NSMutableAttributedString(string: self.text!)
let str = NSString(string:self.text!)
let theRange = str.rangeOfString(text)
attrstring.addAttribute(NSFontAttributeName, value: font, range: theRange)
self.attributedText = attrstring
/**
// 方法2
let attrstring:NSMutableAttributedString = NSMutableAttributedString(string: self.text!)
let range: Range<String.Index> = self.text!.rangeOfString(text)!
let index3: Int = self.text!.startIndex.distanceTo(range.startIndex)
let index4: Int = self.text!.startIndex.distanceTo(range.endIndex)
attrstring.addAttribute(NSFontAttributeName, value: font, range: NSMakeRange(index3, index4 - index3))
self.attributedText = attrstring
*/
}
}
- swift 字符串的截取 以及 Range 的用法
- swift-字符串的截取
- Swift 如何使用Range截取字符串
- ToString截取字符串的用法
- 【iOS】Swift字符串截取方法的改进
- [IOS]Swift字符串截取方法的改进
- swift 字符串的截取和拼接
- python list range 字符串的截取 如 text[1:5]
- oracle中常用的字符串查找、替换以及截取函数的用法!
- Sql的字符串截取 substring()用法
- java截取字符串split的用法!
- [Swift 3.0]String的Extension--字符串的截取
- js字符串截取函数slice()、substring()、substr()以及split()、John() 、indexOf()的用法
- 字符串的用法(字符串的截取和判断)
- 【Python】range的用法
- python的range用法
- swift 字符串String的基本用法
- 报错 字符串截取越界了 range超出了string的length
- 嵌入式C快速翻转一个任何类型的数的二进制位
- Android 开发之主题与样式
- error 回收站
- Android 内存泄露检测神器
- HC-05嵌入式蓝牙串口通讯
- swift 字符串的截取 以及 Range 的用法
- python re 替换
- mfc对combox添加item (在UI设计中——)
- LeetCode 318: Maximum Product of Word Lengths
- 设置UIView圆角
- 获取明天的时间
- Android Studio 插件 Statistic
- TCP与UDP的区别
- 1/72th of an inch