swift4 截取字符串_swift 根据字符截取字符串 - CSDN
精华内容
参与话题
  • swift 字符串截取 以及 Range 的用法

    千次阅读 2016-06-16 15:30:41
    func someMethodOfRange() {     /**  * 字符串与Range的用法  */ ... //1.截取字符串(字符)在整个字符串中所在的位置,返回的类型为 Index   var str = "abcdefghi"  




    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 4. 字符串

    千次阅读 2016-09-03 17:55:39
    字符串标签:swift2. 用前缀或后缀法比较字符串用hasPrefix和hasSuffix这2个字符串的对象方法,来判断和比较,他们返回boolean值的true或falsely看个例子://申明一个字符数组,后面会讲到 var string1 = [ "Act1:...

    swift 4. 字符串

    标签:swift


    2. 用前缀或后缀法比较字符串

    hasPrefixhasSuffix这2个字符串的对象方法,来判断和比较,他们返回boolean值的true或falsely

    看个例子:

    //申明一个字符数组,后面会讲到
    var string1 = [
        "Act1:1:Dojo",
        "Act1:2:Do",
        "Act1:3:Dojo",
        "Act1:4:Dojo"
    ]
    //申明2个整型变量,记住中间要用逗号啊。
    var j = 0,k = 0,d = 0
    
    for i in string1 {
        if i.hasPrefix("Act1") {
            j++
        }
        if i.hasSuffix("Do"){
            k++
        }
    
        if i.containsString("Do") {
            d++
        }
    }
    
    print("有Act前缀的数有\(j)个") //输出4
    print("有Do后缀的数有\(k)个") //输出1
    print("包含Do的数有\(d)个") //输出4

    3. 大小写转换

    大小写转换是一般的语言中都会有的函数方法,swift中用字符串对象的属性uppercaseStringlowercaseStringcapitalizedString来转换,记住是属性。不是函数,也不是方法:

    //大小写转换
    
    var string2 = "hi,my name is yangyi ,what`s your name?"
    
    var string3 = "hi,My Name IS Yangyi ,what`s your name?"
    
    var string4 = "hi,my name is yangyi ,what`s your name?"
    
    var string_upp = string2.uppercaseString
    
    var string_lower = string3.lowercaseString
    
    var first_upp = string4.capitalizedString
    
    print("全部大写\(string_upp)") 
    //全部大写HI,MY NAME IS YANGYI ,WHAT`S YOUR NAME?
    
    print("全部小写\(string_lower)") 
    //全部小写hi,my name is yangyi ,what`s your name?
    
    print("首字母大写\(first_upp)") 
    //首字母大写Hi,My Name Is Yangyi ,What`s Your Name?

    我顺便来复习下其他语言中是如何大小写转换的:

    //javascript
    var a = "hello";
    var b = "HellO";
    var a_upper = a.toUpperCase();  //大写
    var a_lower = a.toLowerCase();  //小写
    
    //php
    $a = "hello, word!";
    $a_upper = strtoupper($a); //转换成大写
    $b_lower = strtolower($b); //转换成小写
    $first_upper = ucfirst($b); //首字母大写
    

    4. 遍历一个字符串

    在swift2中遍历字符串得用字符串的一个 characters属性:

    var str = "Hello, Swift~"
    for c in str.characters {
        print(c, terminator: " ")
    }

    输出:

    H e l l o ,   S w i f t ~ 

    5. 获取字符串中的某个字符

    swift2中不能用str[0], str[1]等方式,得用index索引的方式,定位到位置:

    startIndex 标示字符串的0开始的一个索引

    var str = "Hello, Swift"
    let startIndex = str.startIndex  //0
    startIndex  //0
    str[startIndex] //H

    advancedBy 从索引位置开始取第几个值

    var str = "Hello, Swift"
    let startIndex = str.startIndex  //0
    startIndex  //0
    str[startIndex.advancedBy(1)] //e
    str[startIndex.advancedBy(7)] //S

    predecessor 取前一个 succesor 取后一个

    var str = "Hello, Swift"
    let startIndex = str.startIndex  //0
    let spaceIndex = startIndex.advancedBy(6) // " "定位到空格
    str[spaceIndex.predecessor()] // 空格前是","
    str[spaceIndex.successor()] // 空格后是"S"

    endIndex 最后一个字符索引。

    var str = "Hello, Swift"
    let endIndex = str.endIndex // 13 最后一位是13。
    str[endIndex.predecessor()] //但是13没有,只有12.所以得取前一个。

    所以,startIndex 和 endIndex是一个前闭后开 0..<13这样的结构。

    Range 去一个区间的字符

    str[startIndex..<spaceIndex] // Hello, 

    其它的一些字符串的函数用法:

    let range = startIndex..<spaceIndex.predecessor() // 生成一个range 0..<5
    str.replaceRange(range, with: "Hi") // 替换一个区间 Hi, Swift
    str.appendContentsOf("!!!") // 在尾部追加 "Hi, Swift!!!"
    str.insert("?", atIndex: str.endIndex) //在一个索引出,插入一个字符 Hi, Swift!!!?
    str.removeAtIndex( str.endIndex.predecessor() ) // 移除一个字符,在索引处。 // 返回 ?
    str.removeRange( str.endIndex.advancedBy(-2)..<str.endIndex ) //移除一个区间。Hi, Swift!
    展开全文
  • swift 字符串拼接、截取

    万次阅读 2017-02-20 23:13:43
    //swift 字符串 //1>swift中的字符串String是一个结构体,性能更高 //2>NSString是一个OC对象,性能略差 //3>String支持直接遍历 //4>Swift提供了String和NSString的无缝转换 let str = "hello world" //遍历字符串...
    import UIKit
    
    //swift 字符串
    //1>swift中的字符串String是一个结构体,性能更高
    //2>NSString是一个OC对象,性能略差
    //3>String支持直接遍历
    //4>Swift提供了String和NSString的无缝转换
    let str = "hello world"
    
    //遍历字符串
    for c in str.characters{
        print(c)
    }
    
    //字符串拼接
    //两个字符串之间的拼接
    let str1 = "你好"
    
    let str2 = "世界"
    
    let str3 = str1 + str2
    
    //字符串和其它标识符的拼接
    let name = "ZYF"
    
    let age = 18
    
    let height = 1.88
    
    let info = "my name is \(name) , my age is \(age) , my height is \(height)"
    
    //拼接字符串时,字符串的格式化
    let minent = 2
    
    let seconds = 8
    
    let timeString = String(format: "%02d:%02d", arguments:[minent,seconds])
    
    print(timeString)
    
    //字符串的截取
    let urlStr = "www.zhengyanfeng.com"
    
    //将String类型转换为NSString类型
    
    
    let header = (urlStr as NSString).substring(to: 3)
    
    let body = (urlStr as NSString).substring(with: NSRange(location: 4, length: 12))
    
    let afterbody = (urlStr as NSString).substring(from: 17)
    
    

    展开全文
  • swift3.0字符串截取,字符串处理

    万次阅读 2017-07-30 14:55:57
    1.截取前面三个字符串,要求输出结果为abc let str = "abcdefghi" let index = str.index(str.startIndex, offsetBy: 3)//获取字符d的索引 let result = str.substring(to: index)//从起始截取到索引的所有字符串...

    1.截取前面三个字符串,要求输出结果为abc

    let str ="abcdefghi"

    let index = str.index(str.startIndex, offsetBy:3)//获取字符d的索引

    let result = str.substring(to: index)//从起始截取到索引的所有字符串,即abc,注意不包含d

    打印结果为 abc


    2.截取第四个开始的所有字符串,要求输出结果为defghi

    let str = "abcdefghi"

    let index = str.index(str.startIndex, offsetBy: 3)//获取字符d的索引

    let result = str.substring(from: index)//从d的索引开始截取后面所有的字符串即defghi

    打印结果为defghi


    3.截取第4个开始的长度为2个字符串,要求结果输出为de

    let str ="abcdefghi"

    let startIndex = str.index(str.startIndex, offsetBy:3)//获取d的索引

    let endIndex = str.index(startIndex, offsetBy:2)//从d的索引开始往后两个,即获取f的索引

    let result = str.substring(with: startIndex..<endIndex)//输出d的索引到f索引的范围,注意..<符号表示输出不包含f

    打印结果为de


    4.判断字符串是否包含某段字符

    let str = "abcdefghi"

    let result = str.contains("ac")

    打印结果为false

    let result = str.contains("abc")

    打印结果为true


    5.字符串大小写转换

    let str = "ABCDEFGHI"

    let result = str.lowercased()

    输出结果为abcdefghi


    let str = "abcdefghi"

    let result = str.uppercased()

    输出结果为ABCDEFGHI


    6.指定字符串替换为其他字符串,将abc替换成m,使输出结果为mdefghi

    let str = "abcdefghi"

    let result = str.replacingOccurrences(of:"abc", with: "m")

    输出结果为mdefghi


    7.指定范围内的字符串替换为其他字符串,将cde替换成m,使输出结果为abmfghi

    let str = "abcdefghi"

    let startIndex = str.index(str.startIndex, offsetBy:2)

    let endIndex = str.index(startIndex, offsetBy:3)

    let result = str.replacingCharacters(in: startIndex..<endIndex, with:"m")

    输出结果为abmfghi


    8.有时候不确定字符串的长度,需求为截取字符串末尾面开始往前5位,截取长度为2的字符串,使输出为ef

    let str = "abcdefghi"

    let startIndex = str.index(str.startIndex, offsetBy: str.lengthOfBytes(using: .utf8) - 5)

    let endIndex = str.index(startIndex, offsetBy:2)

    let result = str.substring(with: startIndex..<endIndex)

    输出结果为ef


    9. 字符串转为数组,使得输出为["a", "b", "c", "d", "e", "f", "g", "h", "i"]

    let str = "a.b.c.d.e.f.g.h.i"

    let result = str.components(separatedBy:".")

    输出为["a", "b", "c", "d", "e", "f", "g", "h", "i"]




















    展开全文
  • swift3.0 中字符串截取

    万次阅读 2016-07-31 12:29:13
    swift3.0 中不能直接使用下标数字进行字符串解决,只能使用String.Index来做位置索引,要想实现截取功能首先得获取到String.Index; 下面两段代码获取开头可结尾,获取中间部分参数用RangeIndex>即可; ...
  • Swift 分割字符串与截取字符串

    千次阅读 2017-02-21 11:40:04
    Swift3.0语言教程分割字符串 如果想要快速的创建一个数组,我们可以将字符串进行分割,分割后的内容将会生成一个数组。在NSString中有两个分割字符串的方法,分别为components(separatedBy:)方法和components...
  • swift字符串截取方法(substring)

    千次阅读 2018-04-17 10:30:32
    下面介绍2种swift字符串截取方法,实际上用到了substringFromIndex,substringToIndex,substringWithRange1.将String转化为NSString再截取,代码如下: var s="1234567890" var ns1=(s as NSString)....
  • Swift-字符串截取、替换、插入

    千次阅读 2019-01-18 17:40:37
    Swift中关于字符串截取与OC还是有很大的区别的,要说字符串截取,就要先说下“范围”,OC中使用的是NSRange函数来指示一个起始位置和长度,而Swift中的范围使用起来就方便得多,有两种形式: 1...5表示闭区间[1...
  • [iOS 字符串] 字符串后几位截取

    万次阅读 2016-06-12 13:38:03
    截取字符串有如下方法[string substringToIndex:7];//截取掉下标7之后的字符串[string substringFromIndex:2];//截取掉下标2之前的字符串[string substringWithRange:range];//截取范围类的字符串遇到一个问题, ...
  • Swift 4.2字符串截取(subString过期)

    千次阅读 2018-12-26 13:42:27
    1.截取前三个字符 //方法一 let str = "0123456789" let subStr = str.prefix(3) print(subStr)//输出012 //方法二 let str = "0123456789" let endIndex = s...
  • Swift字符串的检索中,有时候返回的可能是一个范围,而不是一个具体的位置。这就要用到Swift中Range的概念。我们对此来进行详解。 (1)字符串中检索某个单词方法:rangeOfString var str = "Hello Apple.Hello ...
  • Swift4.0 字符串操作

    万次阅读 2018-06-22 11:34:50
    import UIKit var str = "Hello, playground"...) //得到空格在字符串中的位置 //Swift 3.0 let greeting = str[str.startIndex ..< index!] //得到hello index = str.index(index!, offsetBy: 1)
  • iOS Swift字符串截取

    千次阅读 2017-02-22 11:17:25
    Swift字符串截取由三种方式下面我们一次介绍 方式一 根据index进行简单截取 // 声明一个字符串 Swift字符串的类型是String类型 var strTest = "01224312" // 得到第一个字符的index var index = strTest....
  • / 2 3 4 ? / " // 替换 print("空格替换成-:", s.replacingOccurrences(of: " ", with: "-")) // 过滤 print("空格过滤掉:", s.replacingOccurrences(of: "...
  • Swift String去掉最后一个字符,endIndex

    千次阅读 2016-09-25 09:23:16
    endIndex 不是只我们最后一个有效的字符,所以不要直接.endIndex 正确写法: jsonString.remove(at: jsonString.index(before: jsonString.endIndex))
  • Swift3.1字符串截取操作

    千次阅读 2017-06-16 15:06:44
    import Foundation var str: String = "0123456789" let start = str.index(str.startIndex, offsetBy: 3); let str1 = str.substring(from: start) print(str1) //3456789 let end = str.index(str.endIndex, off
  • 从String中获取数字并且比较大小,然后对这些字符串进行排序是一种很常见的需求,这个需求的难度只在于从字符串中获取数字。下面给出几种获取数字的方法。都是用Swift3.0做的。 第一种: 繁琐的写法是: let ...
  • Swift:字符串范围截取操作

    千次阅读 2018-03-28 20:06:27
    1.contains方法应用:let str1 = "josh" let str2 = "joshwang" str1.contains(str2) //false str2.contains(str1) //true2.append方法应用:var resultArray: [String] = [] ...
  • swift字符串常用操作---字符截取

    千次阅读 2016-08-19 15:38:31
    string
  • swift 字符串截取和拼接

    千次阅读 2016-08-02 18:39:35
    下面为大家介绍一下 swift字符串截取和拼接例如 下面这个字符串 source = “nofollow”>360安全浏览器 最后需要的结果 —–> 来自360安全浏览器func getSourceStr(source:String?) -> ...
1 2 3 4 5 ... 20
收藏数 1,528
精华内容 611
关键字:

swift4 截取字符串