首页 > 其他分享 >iOS开发Swift-字符串与字符

iOS开发Swift-字符串与字符

时间:2023-08-23 17:22:42浏览次数:38  
标签:字符 index iOS greeting var let 字符串 Swift

1.字符串的定义

let someString = "some string value"

2.多行字符串的定义(""")

let quotation = """
有一个人前来买瓜。
"这瓜甜吗?"他问。
"""

 前一个"""前和后一个"""后无换行

//前一个"""前和后一个"""后无换行
let someString = "有个人。"
let someString = """
有个人。
"""
//此两个语句效果相同

 想要实现在代码编写时换行而在实际运行后不换行:  \

//在代码编写时换行而在实际运行后不换行
let someString = """
abcdefg\
hijklmn
"""
//实际输出:abcdefghijklmn

3.字符串中的特殊字符

(1)转义字符

\0 空字符
\\ 反斜线
\t 水平制表符
\n 换行符
\r 回车符
\" 双引号
\' 单引号

要在"""中使用(""")时,必须至少写一个转义符\。例如 \""" 或 \"\"\"

(2)Unicode标量

\u{24} 两位十六进制数
\u{2665} 四位十六进制数
\u{nnn...} 1~8位十六进制数

4.扩展字符分隔符

有\但不想转义时:

#"Line1 \nLine2"#

5.初始化空字符串

var emptyString = ""     //或
var emptyString = String()

//判断字符串是否为空:
if emptyString.isEmpty {
    print("Empty!")
}

6.字符串可变性

var a = "a"
a += "b"   //a = "ab"
let c = "c"
c += "d"   //报错,常量字符串不可修改

7.使用字符

//通过for-in输出字符
for c in "Dog!"{ print(c) } /* 输出: D o g ! */
//通过指定类型创建字符
let end: Character = "!"
//通过定义字符数组创建字符数组,再通过String(字符数组)方法创建字符串
let cat: [Character] = ["c", "a", "t"] let catString = String(cat) print(cat) //输出cat

8.连接字符串和字符

//1
let a = "a"
let b = "b"
var c = a + b
//2
var a = "a"
a += b
//3
let a: Character = "a"
b.append(a)    //ba

9.字符串插值

let a = 3
let message = "\(a) times 2.5 is \(Double(a) * 2,5)"   //3 times 2.5 is 7.5

10.字符串索引

let greeting = "Guten Tag!"
greeting[greeting.startIndex]    //G
greeting[greeting.index( before: greeting.endIndex)]    //!
greeting[greeting.index( after: greeting.startIndex)]    //u
greeting[greeting.index( greeting.startIndex, offsetBy: 7)]    //a

startIndex为第一个字符;endIndex为最后一个字符后一个字符。

indices属性会创建一个包含全部索引范围访问单字符。

for index in getting.indices{
    print("\(greeting[index])", terminator:" ")
}    //G u t e n  T a g !

11.插入和删除

//插入
var h = "Hello" h.insert("!", at: h.endIndex) //Hello!
//删除
//remove
h.remove( at: h.index(before: h.endIndex) )    //Hello
//removeSubrange
let range = h.startIndex ..< h.endIndex
h.removeSubrange(range)   //参数为一个字符串范围
//运行结果:啥也没有

12.子字符串

let g = "Hello,World!"
let index = g.firstIndex(of: ",") ?? g.endIndex
let beginning = g[..<index]     //beginning为subString类型
let newString = String(beginning)   //将subString类型转换为String类型
//短时间使用此子字符串用subString,长期使用需转换为String类型
print(newString)    //Hello

13.比较字符串

 (1)字符串/字符相等

==     !=

标准相等:语言意义和外观都相等。

a == a 自反性
a == b ⇒ b == a 对称性
a == b && b == c ⇒ a == c 传递性

(2)前缀/后缀相等

//都返回一个布尔值
scene.hasPrefix("Action 1")    //有相同前缀"Action 1"
scene.hasSuffix("。")     //有相同后缀"。"

14.utf8表示、utf16表示

dogString.utf8    //68 111 103 226
dogString.utf16    //68 111 103 8252

15.Unicode标量表示

Unicode:字符的唯一21位数表示

dogString.unicodeScalars     //D o g !

 

标签:字符,index,iOS,greeting,var,let,字符串,Swift
From: https://www.cnblogs.com/lysboke/p/17652248.html

相关文章

  • java-将列表格式化成json字符串
    List<String>list=newArrayList<>();list.add("{'county':'china','age':18}");list.add("{'county':'japan','age':28}");......
  • 字符串口胡记录
    [NOIP2020]字符串匹配枚举两个分界点并检查是否合法的暴力很显然,考虑优化。字符串只会哈希可以想到用哈希优化比较复杂度,具体来说,只用枚举\(AB\)的长度\(len\),然后每次暴力往后跳用哈希检查往下\(len\)个字符并更新答案,直到它们与\(AB\)不同。同时考虑如何统计\(f(A)\leqf(C......
  • iOS开发Swift-基本运算符
    1.一元、二元、三元运算符一元单一操作对象-a   !b   c!二元两个操作对象2+3三元三目运算符a?b:c2.赋值运算符(=)leta=10varb=5b=alet(x,y)=(1,2)赋值运算符不返回任何值,所以ifx=y{...}无效。3.算术运算符+  -......
  • Swift-基础语法之变量&常量&元组
    使用 let来声明一个常量,用 var来声明一个变量。常量的值在编译时并不要求已知,但是你必须为其赋值一次。这意味着你可以使用常量来给一个值命名,然后一次定义多次使用varmyVariable=42myVariable=50letmyConstant=42常量或者变量必须拥有和你赋给它们的值相同的类型。不......
  • swift学习笔记之控制流
    控制流:1、if语句letcount=5ifcount>=3{print("yes")}else{print("no")}2、switch语句(1)Swift中不需要在case块中显示地使用break跳出switch。如果想要实现C风格的落入特性,可以给需要的case分支插入fallthrough语句letfruit="apple"switchfruit{case"a......
  • ios 生成一个动态的随机的头像/随机数的操作
               在写项目的时候,可能会遇到这种情况,用到集中随机的颜色,或者头像等,首先:把所需要的图片放进一个数组当中imgsAry=@[@"t1.png",@"t2.png",@"t3.png",@"t4.png",@"t5.png",@"t6.png",@"t7.png",@"t8.png"];然后根据数组的count数生成一个随机......
  • iOS根据文字字数动态确定Label宽高
    我们有时候在写项目的时候,会碰到,意见反馈,还有其他地方,讲座活动细则等需要大篇展示的文本,因为每次服务器返回的内容大小不一,所以需要动态的调整label的宽高:在ios6的时候可以:-(void)creatLabel{//根据文字字数动态确定label宽高_nameLabel=[[UILabelalloc]init......
  • swift学习笔记之---数组、字典、枚举、结构体
    1、数组-Arraylettypes=["none","warning","error"]//省略类型的数组声明letmenbers=[String]()//声明一个空数组menbers.append("six")//添加元素menbers+=["seven"]//添加元素menbers.insert("one"......
  • ios 调用系统应用的方法 应用间跳转的方法
    声明一个私有方法:#pragmamark-私有方法-(void)openUrl:(NSString*)urlStr{//注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮件是“sms://”其中“//”可以省略写成“sms:”(其他协议也是如此)NSURL*url=[NSURLURLWithString:urlStr];UIApplica......
  • ios button标记
    在写项目的时候,for循环创建多个button,在需要设置背景图片和,需要标记所选中的button的需求,在这里提供两种方法:一:1:把for循环创建的button全部装到一个新建的数组中,把他们的点击事件都写在一个方法里,把button给传到方法中去,在button的点击方法里面遍历装有button的数组,让他显示没有被......