源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Swift语言中字符串相关的基本概念解析

  • 时间:2020-11-22 15:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Swift语言中字符串相关的基本概念解析
Swift 的字符是一个单一的字符串文字并且是字符数据类型。下面是一个简单的例子,使用了两种字符常量:
[u]复制代码[/u] 代码如下:
import Cocoa let char1: Character = "A" let char2: Character = "B" println("Value of char1 \(char1)") println("Value of char2 \(char2)")
当上述代码被编译和执行时,它产生了以下结果:
Value of char1 A
Value of char2 B
如果尝试存储多个字符到字符类型的变量或常量,那么 Swift 是不会允许的。试着键入下面的示例到 Swift Playground,在编译之前,就已经会得到一个错误。
[u]复制代码[/u] 代码如下:
import Cocoa // Following is wrong in Swift let char: Character = "AB" println("Value of char \(char)")
[b]空字符变量 [/b]不可能创建一个空的字符变量或常量,这将有空值。下面的语法是不可能的:
[u]复制代码[/u] 代码如下:
import Cocoa // Following is wrong in Swift let char1: Character = "" var char2: Character = "" println("Value of char1 \(char1)") println("Value of char2 \(char2)")
[b]从字符串访问字符 [/b]当讨论 Swift 的字符串,字符串表示的字符值按指定顺序的集合。因此,我们可以从给定字符串通过 for-in 循环来遍历字符串以访问单个字符:
[u]复制代码[/u] 代码如下:
import Cocoa for ch in "Hello" {    println(ch) }
当上述代码被编译和执行时,它产生了以下结果:
H
e
l
l
o
[b]使用字符连接字符串 [/b]下面的例子演示了 Swift 字符如何与字符串连接。
[u]复制代码[/u] 代码如下:
import Cocoa var varA:String = "Hello " let varB:Character = "G" varA.append( varB ) println("Value of varC  =  \(varA)")
当上述代码被编译和执行时,它产生了以下结果:
Value of varC Hello G

Swift 字符串是字符有序集合,如“Hello, World!”,它们是由 Swift 的 String 数据类型表示,这也代表字符类型值的集合。 [b]创建字符串 [/b]可以通过使用一个字符串文字或创建String类的一个实例来创建一个字符串,如下:
[u]复制代码[/u] 代码如下:
import Cocoa // String creation using String literal var stringA = "Hello, Swift!" println( stringA ) // String creation using String instance var stringB = String("Hello, Swift!") println( stringB )
当上述代码被编译和执行时,它产生了以下结果:
Hello, Swift!
Hello, Swift!
[b]空字符串 [/b]可以通过使用一个空字符串或创建 String 类的一个实例来创建一个空的字符串,如下所示。还可以检查一个字符串是否为空,使用布尔属性 isEmpty。
[u]复制代码[/u] 代码如下:
import Cocoa // Empty string creation using String literal var stringA = "" if stringA.isEmpty {    println( "stringA is empty" ) } else {    println( "stringA is not empty" ) } // Empty string creation using String instance let stringB = String() if stringB.isEmpty {    println( "stringB is empty" ) } else {    println( "stringB is not empty" ) }
当上述代码被编译和执行时,它产生了以下结果:
stringA is empty
stringB is empty
[b]字符串常量 [/b]可以指定字符串是否可以修改(或突变),通过将其分配给一个变量,或者通过将其使用 let 关键字分配为常量,如下图所示:
[u]复制代码[/u] 代码如下:
import Cocoa // stringA can be modified var stringA = "Hello, Swift!" stringA + = "--Readers--" println( stringA ) // stringB can not be modified let stringB = String("Hello, Swift!") stringB + = "--Readers--" println( stringB )
当上述代码被编译和执行时,它产生了以下结果:
Playground execution failed: error: <EXPR>:10:1: error: 'String' is not convertible to '@lvalue UInt8'
stringB + = "--Readers--"
[b]字符串插值 [/b]字串转换符号是一种通过包括字符串文字内的值来构造的常量,变量,文本和表达式来组合一个新的字符串值。 每个项目(变量或常量),插入到字符串被包裹在一对括号内, 一个反斜杠前缀。下面是简单的例子:
[u]复制代码[/u] 代码如下:
import Cocoa var varA   = 20 let constA = 100 var varC:Float = 20.0 var stringA = "\(varA) times \(constA) is equal to \(varC * 100)" println( stringA )
当上述代码被编译和执行时,它产生了以下结果:
20 times 100 is equal to 2000.0
[b]字符串连接 [/b]可以使用+运算符来连接两个字符串或字符串和字符,或两个字符。下面是一个简单的例子:
[u]复制代码[/u] 代码如下:
import Cocoa let constA = "Hello," let constB = "World!" var stringA = constA + constB println( stringA )
当上述代码被编译和执行时,它产生了以下结果:
Hello,World!
[b]字符串长度 [/b]Swift 中字符串没有 length 属性,但可以使用全局count()函数来计算字符串中的字符数。下面是一个简单的例子:
[u]复制代码[/u] 代码如下:
import Cocoa var varA   = "Hello, Swift!" println( "\(varA), length is \(count(varA))" )
当上述代码被编译和执行时,它产生了以下结果:
Hello, Swift!, length is 13
[b]字符串比较 [/b]可以使用 == 操作符两个比较两个字符串变量或常量。下面是一个简单的例子:
[u]复制代码[/u] 代码如下:
import Cocoa var varA   = "Hello, Swift!" var varB   = "Hello, World!" if varA == varB {    println( "\(varA) and \(varB) are equal" ) } else {    println( "\(varA) and \(varB) are not equal" ) }
当上述代码被编译和执行时,它产生了以下结果:
Hello, Swift! and Hello, World! are not equal
[b]Unicode字符串 [/b]可以通过遍历在 UTF8 和 UTF16 属性访问字符串的 UTF-8 和 UTF-16 表示,如下面的示例:
[u]复制代码[/u] 代码如下:
import Cocoa var unicodeString   = "Dog‼" println("UTF-8 Codes: ") for code in unicodeString.utf8 {    print("\(code) ") } print("\n") println("UTF-16 Codes: ") for code in unicodeString.utf16 {    print("\(code) ") }
当上述代码被编译和执行时,它产生了以下结果:
UTF-8 Codes: 
68 111 103 226 128 188 240 159 144 182 
UTF-16 Codes: 
68 111 103 8252 55357 56374
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部