2.1 字符、字符串常用方法、属性

2020-05-22  本文已影响0人  LucXion

整数和浮点数之间可利用构造方法进行相互转换

var a:Int = 1
var b:Double = 2.0
var c:Int = Int(b)
var d:Double = Double(a)

字符类型Character

var ch:Character = "c"// 只允许保存单个字符 也可以通过构造函数来构造Character("c")
var chs:[Character] = ["a","b","c"]// 字符数组
var chStr = String(chs);//"abc\n"  通过字符数组构建字符串
MemoryLayout<Character>.size;//Swift5中与String类型大小相同,同占16字节长度

Swift 5中 String类型的实例已经废弃了名为characters的集合
构造字符串
var str1 = String()// ""
var str2 = String("hello")
var str3 = String(666)// "666"
var str4 = String(false)// "false"
var str5 = String(describing: (1,2,"c"))// 通过元组构造 (1,2,"c")
var str6 = String(format: "我是%@", "小灰灰") // 我是小灰灰
var str7 = String(describing: (String.self))//获取类型字符串
字符串组合
var a = "Hello"
var b = "world"
var c = a+b; // String对+号进行了重载,可以直接用于组合字符串
var d = a+"-"+b;
var e = "Good,\(d)"// 也可以通过\()实现快速插入字符串

转义字符

/*
  转义字符
\0        用来表示空白符
\\      用来表示反斜杠\
\t      用来表示制表符 // tabL = 系统制表区域(4-8个空格)  str\t相当于 str + (tabL - str.count % 4) * 空格
\n      用来表示换行符
\r      用来表示回车符
\'      用来表示单引号
\"              用来表示双引号
\u{}    用unicode码来创建字符 //使用unicode码来创建字符  unicode码21代表的字符为!
 
 */
var string = "123456789"
//         《重要属性:startIndex、endIndex》
//1. 获取字符串起始的下标  **1**
var startIndex = string.startIndex
//1.1 获取字符串结束的下标  **不为string长度,但可以对应下标**
var endIndex = string.endIndex
//         《range》
//2.获取某个子串在父串中的范围  **与endIndex一样没有连续的自然数规律**
//var range = string.range(of: "456")
//2.1怎么获取指定内容的范围      ???????????????
//2.2怎么利用range获取字符串      ???????????????
//2.3怎么替换字符串内容      ???????????????
//         《追加字符串》
//3.追加一个字符  参数可以是字符串,直接对string生效
//string.append(Character("!"))
//         《插入字符串》
//4.在指定位置插入一个字符 可以理解为在该下标后插入
//string.insert("~", at: string.index(string.startIndex, offsetBy: 4))
//4.1 如何在特定内容后插入内容      ???????????????
//4.2在指定位置插入一组字符  startIndex + offset 0 为内容前
//string.insert(contentsOf: ["~","~","~"], at: string.index(string.startIndex, offsetBy: 0))
//         《截取字符串》
//5.通过范围运算符(...)和index,获取字符串中的一个子串 共截取5个字符
//var subString = string[startIndex...string.index(startIndex, offsetBy: 4)]
//5.1通过范围运算符(..<)和index,截取子串
//var subString2 = string[string.index(endIndex, offsetBy: -5)..<endIndex]
//         《替换字符串》
//6 在指定范围替换一个字符串:(范围运算符+index)
//string.replaceSubrange(string.startIndex...string.index(string.startIndex, offsetBy: 4), with: "Hi")
//         《删除字符串》
//6.在指定位置删除一个字符 此时string = "Hi-Swift!~~~~ Hello-Worl"
//string.remove(at: string.index(before:string.endIndex))
//6.1删除指定范围的字符
//string.removeSubrange(string.startIndex...string.index(string.startIndex, offsetBy: 2))
//6.3删除所有字符  此时
//string = string.removeAll()
var string2 = "My name is Jaki"
//全部转换为大写
string2 = string2.uppercased() //结果为 "MY NAME IS JAKI"
//全部转换为小写
string2 = string2.lowercased() //结果为 "my name is jaki"
//检查字符串的前缀和后缀:
//检查字符串是否有My前缀
string2.hasPrefix("My")
//检查字符串是否有jaki后缀
string2.hasSuffix("jaki")
上一篇下一篇

猜你喜欢

热点阅读