美文网首页
Swift中 Character(一)

Swift中 Character(一)

作者: 你duck不必呀 | 来源:发表于2021-11-05 14:21 被阅读0次

OC语言中,定义一个简单的字符可以通过char类型

char ch = 'A'

char类新只占一个字节,因此不能存储复杂的字符,比如汉子"中",复杂字符要用字符串的指针

char ch1[] = "中"
char *ch2 = "中"

Swift中用Character,使用起来会方便许多

创建单个字符,需要指定类型Character

let ch:Character = "A" // Character
let en = "A" // String 

Character类型不允许存储多个字符

let chars:Character = "AB" // 编译器报错,Cannot convert value of type 'String' to specified type 'Character'

也不允许存储空字符,特殊字符需要转义

let char:Character = "" // 编译器报错,Cannot convert value of type 'String' to specified type 'Character'
let char:Character = Character("") //能绕过编译器检查,但是运行起来就报异常

转义的特殊字符\0(空字符)、\\(反斜杠)、\t(水平制表符)、\n(换行)、\r(回车)、\"(双引号)和\'(单引号)

或者任意Unicode标量值,格式为"\u{N}",N位 十六进制数

let en:Character = "\u{41}" // A

字符的编码值

对于单字符,可以通过asciiValue属性获取ASCII码值
属性asciiValue获取单个字符的ASCII码值

en.asciiValue // Optional(65)

由于UTF-8兼容ASCII,单字符也可以通过utf8.first获取ASCII码值

en.utf8.first // Optional(65)

超出ASCII范围的字符返回nil,使用的时候需要注意

let en:Character = "😊"
print(en.asciiValue) // nil

String转字符

String遵守Sequence协议,可通过for-in 遍历字符串,得到Character字符

for character in "Dog!🐶" {
    print(character) // D o g ! 🐶
}

String可以用Character类型数组初始化

let characters:[Character] = ["D","o","g","!","🐶"]
var string = String(characters) //Dog!🐶

不能直接通过 + 拼接到字符串,需要通过append(:)

string.append(ch) // Dog!🐶A

数组Array有个初始化方法,可以把Sequence转换成数组

let chars = Array(string)
print(chars) // ["H", "e", "l", "l", "o", " ", "w", "o", "r", "d", "!"]

字符比较

字符Character遵守Comparable协议,字符比较是根据编码值比较

let lch = "A" // 65
let rch = "B" //66
lch > rch // false

遵守Comparable协议另一个特点是可以使用范围Range

let charRange = Character("A")..<Character("Z")
print(charRange) //A..<Z

字符转数字

数字字符属于单字符,可以使用ASCII码减去0字符

let numCh:Character = "5"
// 这里确定强制解包不会出错
let num = numCh.asciiValue! - Character("0").asciiValue!
print(num) // 5

swift提供了特定的初始化方法

Int("5") //Optional(5)
Float("5.0") // Optional(5.0)

isNumber用以判断一个字符是否是数字,不仅可以判断简单的字符,还可以是复杂的字符

let numCh:Character = "7" 
numCh.isNumber // true

let complexCh:Character = "⅚"
complexCh.isNumber // true

// 1⃣️,十,㊈ isNumber判断都是true

Character简单介绍就到这里。陆续补充中。。。。。。

相关文章

  • Swift中 Character(一)

    OC语言中,定义一个简单的字符可以通过char类型 char类新只占一个字节,因此不能存储复杂的字符,比如汉子"中...

  • Swift中 Character(二)

    现在的编程语言都支持Unicode字符串,但是处理Unicode字符串又是一个复杂的事情,原因就是Unicode并...

  • 'characters' is deprecat

    swift 4使用!stringValue.isEmpty 替换 stringValue.character...

  • 第十章 Swift 字符

    Swift 的字符是一个单一的字符字符串字面量,数据类型为 Character。 如果你想在 Character(...

  • Swift 字符(Character)

    Swift 的字符是一个单一的字符字符串字面量,数据类型为 Character。 以下实例列出了两个字符实例: i...

  • Swift - 基本数据类型(零)

    一、 Swift的基本数据类型: Int、Float、Double、Bool、Character、String A...

  • Swift:基础(十二)字符串

    Swift 字符(Character) Swift 的字符是一个单一的字符字符串字面量,数据类型为 Charact...

  • Swift数据类型

    Swift中常有的数据类型:Int、Float、Double、Bool、Character、String、Arra...

  • swift类型

    swift类型 1.字符类型2.区间类型 ClosedRange = "\0"..."~"3...

  • Swift学习笔记(二)

    1.字符 在Swift中字符类型是Character。与其他的类型申明类似,我们可以指定变量或常量类型为Chara...

网友评论

      本文标题:Swift中 Character(一)

      本文链接:https://www.haomeiwen.com/subject/gmrrzltx.html