swiftにおける文字列の処理

4772 ワード

今日はswiftの文字列に対する操作をまとめ、仕事でよく使われることを記録します.の
1、文字列の宣言
文字列の宣言については、タイプを寸法するか、寸法を寸法しないかのいずれかです.
//        1、     
        var emptyStr : String = " "//        
        var str : String = "Hello World"//       String
        var str1 = "Hello World"//       , swift             String
       
        
        //         ,     true,   false
        let bool : Bool = emptyStr.isEmpty
文字列が空であるか否かを判断するには、上記の方法に加えて、変数タイプを定義する際に変数を空にすることを許可すると、xx==nilで判断できる愚かな方法がある.
 var str3 : String?
        if str3 == nil {
            str3 = "Hello World"
        }

コードの「?」この変数がオプション値Optionalであることを示し、その値はnilであってもよいし、具体的な値であってもよい.オプション値として宣言されると、値が指定されていない場合、デフォルトはnilであり、ifを使用して文字列に値があるかどうかを判断できます.
2、文字列のつづり
文字列の接続には主に2つの方法があります.1つは文字列の後ろに直接文字列を追加することであり、もう1つは文字列の配列を1つの文字列につなぐことです.
//        2、     
        let str = "Hello"
        let str2 = "world"
        let str3 = str + str2//  +           ,    
        
        let array : [String] = ["aaa","bbb", "ccc"]
        let arrayStr : String = array.joinWithSeparator("/")//             
その接合の結果は以下の通りである.
str3 Helloworld
arrayStr aaa/bbb/ccc

3、文字列の切り取り
文字列の切り取りはsubstringFromIndex,substringToIndex,substringWithRangeの3つの関数を利用する.
//        3、      
        let str = "Hello World"
        //substringFromIndex:             ,        
        let ns1=str.substringFromIndex(str.startIndex.successor())
        
        //substringToIndex:          
        let ns2=str.substringToIndex(str.endIndex.predecessor())
        
        //substringWithRange:            
        let start = str.startIndex.advancedBy(2)
        let end = str.startIndex.advancedBy(7)
        let ns3=str.substringWithRange(Range(start: start, end: end))
ns1  ello World
ns2  Hello Worl
ns3  llo W

4、 のアクセス
へのアクセスは、 き からアクセスできます. に4つの があります.それぞれ:
startIndex: の を す き
endIndex: の わりを す き
successor: の2つの き び しに され、 の きの に+1、つまり の
predessor: の2つの き び しにも され、 の きに づいて-1、すなわち の1つまたは の1つを す
 
 let str = "Hello World"
        
        /*startIndex          */
        str[str.startIndex]
        
        /*endIndex              predecessor     */
        str[str.endIndex.predecessor()]
        
        /*successor           */
        str[str.startIndex.successor()]
        
        /*            ,    advance    ,                     */
        let index = str.startIndex.advancedBy(7)
        str[index]
 
   
  

, swift , advance , OC Int, swift , Index

str[str.startIndex] H
str[str.endIndex.predecessor()] d
str[str.startIndex.successor()] e
str[index] o

5、 の
の は に3つの を む: しいかどうかは"==="で、xxx の にxx hasPrefixが まれているかどうか、xxx の にxx hasSuffixが まれているかどうか.コードは のとおりです.
// 5 、      
        let str = "Hello"
        let str1 = "World"
          //           
        if str1 == str {
            print("str1   str   ")
        }else{
            print("str1   str    ")
        }
    
            
            //           he
            if(str.hasPrefix("He")) {
                print("str      He");
        }
        
                //           ng
        if(str1.hasSuffix("ld")) {
            print("str1      ld");
        }

6、その の
の の は、フィルタと です.
//        6、    
        //      
        var url = "http://cnews.chinadaily.com.cn/2016-06/21/content_25783045.htm"
        var filtered = url.stringByReplacingOccurrencesOfString("/", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
        print("filtered \(filtered)")
        
        //    /   ?
        url = "http://cnews.chinadaily.com.cn/2016-06/21/content_25783045.htm"
        
         filtered = url.stringByReplacingOccurrencesOfString("/", withString: "?", options: NSStringCompareOptions.LiteralSearch, range: nil)
        print("filtered \(filtered)")
:
filtered http:cnews.chinadaily.com.cn2016-0621content_25783045.htm
filtered http:??cnews.chinadaily.com.cn?2016-06?21?content_25783045.htm