Swift4 字符串截取

2018-04-01  本文已影响1247人  Lin__Chuan

Swift 字符串字面量(String literal)介绍

字符串字面量(string literal)是一段双引号括起来的多字节字符序列,C/C++将其实现为具有静态存储连续性的字符数组。那么他属于字符串常量吗? C中的常量只包括下列四种:

在Swift中, 每个字符由一个或多个Unicode标量(Unicode scalar), 一个Unicode标量对应某种给定语言中的一个基本字符.

let oneCode = "\u{1F60E}"   // 这是一个笑脸, 引号内部是 Unicode标量(Unicode scalar), 他是21位的数, 表示Unicode标准中的一个特定字符
let twoCode = "\u{0061}"    // 大括号里面是十六进制数

let s = "hello,world"
for scalar in s.unicodeScalars {
//    print(scalar.value)  Unicode标量的十进制数
//    104 101 108 108 111 44 119 111 114 108 100
//    let hexValue = String(scalar.value, radix: 16, uppercase: false)
//    print(hexValue)      Unicode标量的十六进制数
//     68 65 6c 6c 6f 2c 77 6f 72 6c 64
}
print("\u{0068},\u{0065},\u{006c},\u{006c},\u{006f}")  // h, e, l, l, o

Swift 字符串截取

index 为 String.Index 类型


let newStr = String(str[..<index]) // = str.substring(to: index) In Swift 3
let newStr = String(str[index...]) // = str.substring(from: index) In Swif 3
let newStr = String(str[range]) // = str.substring(with: range) In Swift 3

细节用法

var str: String = "0123456789"  
let start = str.index(str.startIndex, offsetBy: 3);  
let str1 = String(str[start...])
print(str1) //3456789  
  
let end = str.index(str.endIndex, offsetBy: -3)  
let str2 = String(str[..<end])  
print(str2) //0123456  
  
let range = Range<String.Index>(uncheckedBounds: (lower: start, upper: end))  
let str3 = String(str[range]) 
print(str3) //3456 

由以上可以直接写分类

上一篇下一篇

猜你喜欢

热点阅读