在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1 //
2
3 // ViewController.swift
4
5 // Swift-String
6
7 //
8
9 // Created by luorende on 16/9/10.
10
11 // Copyright © 2016年 luorende. All rights reserved.
12
13 //
14
15
16
17 import UIKit
18
19
20
21 class ViewController: UIViewController {
22
23
24
25 override func viewDidLoad() {
26
27 super.viewDidLoad()
28
29 // Do any additional setup after loading the view, typically from a nib.
30
31
32
33
34
35
36
37 // 一、定义字符串
38
39 var str1="Hello,Swift." //字符串变量
40
41 let str2="Hello,Swift." //字符串常量
42
43 let str3=" " //空字符串
44
45 let str4 = String() //空字符串
46
47
48
49 // 二、定义字符
50
51 // 格式:变量关键字和常量关键字 变量 : Character = 字符值
52
53 // 注意点:字符值 必须用双引号括起来, 必须是一个字符
54
55 var char1:Character = "s" //字符变量
56
57 let char2:Character = "s" //字符常量
58
59 // 字符串和字符的关系:字符串是由N个字符组成的,即字符串是字符的集合。
60
61 // 例子:
62
63 let str = "ABC" //字符串"ABC" 是有 三个字符组成的分别是 字符”A",字符“B",字符”C"
64
65 print("str=\(str)")
66
67
68
69
70
71 // 三、字符串与字符串的拼接、字符串与字符的拼接
72
73 // 字符串和字符的值可以通过加法运算符 (+) 相加在一起并创建一个新的字符串值:
74
75 let string1 = "Hello"
76
77 let string2 = " Swift"
78
79 let character1: Character = "!"
80
81 let character2: Character = "?"
82
83 let stringAndCharacter = string1 + String(character1) // 等于 "Hello!"
84
85 let stringAndString = string1 + string2 // 等于 "Hello Swift"
86
87 let characterAndString = String(character1) + string1 // 等于 "!Hello"
88
89 let characterAndCharacter = String(character1) + String(character2) // 等于 "!?"
90
91 // 也可以通过加法赋值运算符 (+=) 将一个字符串或者字符添加到一个已经存在字符串变量上:
92
93 var studying = "study my"
94
95 studying += string2
96
97 // studying 现在等于 "study my Swift"
98
99
100
101 var welcome = "good morning"
102
103 welcome += String(character1)
104
105 // welcome 现在等于 "good morning!"
106
107 // 注意:不能将一个字符串或者字符添加到一个已经存在的字符变量上,因为字符变量只能包含一个字符。
108
109
110
111
112
113
114
115 // 字符串与其它类型值的连接
116
117 let xx=10
118
119 let yy=10.8
120
121 let str1="\(xx)+\(yy)=?"
122
123 print(str1) //str1="10+10.8=?"
124
125 let str2=String(format: "%i+%.1f=?", xx, yy)
126
127 print(str2) //str2="10+10.8=?"
128
129
130
131
132
133
134
135
136
137 // 四、字符串的(插值)插入
138
139 // 字符串插值是一种全新的构建字符串的方式,可以在其中包含常量、变量、字面量和表达式。插入的字符串字面量的每一项都被包裹在以反斜线为前缀的圆括号中:
140
141 let multiplier = 3
142
143
144
145 let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
146
147
148
149 print(message) // message is --> "3 times 2.5 is 7.5"
150
151 // 反斜杠表示插入的意思
152
153 // 在上面的例子中,multiplier 作为 \(multiplier) 被插入到一个字符串字面量中。当创建字符串执行插值计算时此占位符会被替换为 multiplier 实际的值。
154
155
156
157 // multiplier 的值也作为字符串中后面表达式的一部分。该表达式计算 Double(multiplier) * 2.5 的值并将结果 (7.5) 插入到字符串中。在这个例子中,表达式写为 \(Double(multiplier) * 2.5) 并包含在字符串字面量中。
158
159
160
161 // 注意:您插值字符串中写在括号中的表达式不能包含非转义双引号 (") 和反斜杠 (\),并且不能包含回车或换行符。
162
163
164
165
166
167
168
169 // 五、字符串比较
170
171 let str1="Hello,"
172
173 let str2="Swift."
174
175 let str3="Hello,Swift."
176
177 let comp1 = str1==str2 //false ---> 不等于
178
179 print(comp1)
180
181 let comp2 = str1+str2 == str3 //true ---> 等于
182
183 print(comp2)
184
185 let comp3 = str1 < str2 //true ---> 等于
186
187 print(comp3)
188
189 let comp4 = str1 != str2 //true ---> 等于
190
191 print(comp4)
192
193
194
195
196
197
198
199 // 六、字符串长度的计算
200
201 let str="Hello,Swift."
202
203 // let len1=count(str) //swift 1.2
204
205 print(len2) //len1=12
206
207
208
209 let len2=str.characters.count //swift 2.0
210
211 print(len2) //len2=12
212
213
214
215
216
217
218
219
220
221 // 七、查找字符串是否包含子串Swift
222
223 let str1="Hello,Swift."
224
225 let str2="Swift"
226
227 let range=str1.rangeOfString(str2)
228
229 if range != nil{
230
231 //包含
232
233 }
234
235
236
237
238
239
240
241 // 七、查找字符串indexof
242
243 let str="Hello,Swift."
244
245 // let range=str.rangeOfString("Swift",options:NSStringCompareOptions.allZeros) //Swift 1.2
246
247 let range=str.rangeOfString("Swift", options: NSStringCompareOptions()) //Swift 2.0
248
249 let strIndex=range?.startIndex
250
251 print(strIndex) //startIndex=3
252
253
254
255
256
257
258
259 // 八、字符串大小写
260
261 //首字母大写capitalized
262
263 let str1="mandarava is a flower."
264
265 str1.capitalizedString
266
267 print(str1) //str1="Mandarava Is A Flower.
268
269
270
271
272
273 //转换为大写字母uppercase
274
275 var str2="hello, mandarava."
276
277 str2=str2.uppercaseString
278
279 print(str2)//str1="HELLO, MANDARAVA."
280
281
282
283 //转换为小写字母lowercase
284
285 var str3="HELLO, MANDARAVA."
286
287 str3=str3.lowercaseString
288
289 print(str3)//str1="hello, mandarava."
290
291
292
293
294
295
296
297 // 九、字符串分割与打断
298
299 let str1="boy, girl, man, woman"
300
301 let str1Array=str1.componentsSeparatedByString(",")
302
303 print(str1Array) //str1Array=["boy", " girl", " man", " woman"]
304
305
306
307 let str2="boy,girl,man 10 20 30"
308
309 let charset=NSCharacterSet(charactersInString:", ")
310
311 let str2Array=str2.componentsSeparatedByCharactersInSet(charset)
312
313 print(str2Array) //str2Array=["boy", "girl", "man", "10", "20", "30"]
314
315
316
317
318
319
320
321 // 十、字符串的转换(string转换为Int/Long/Float/Double/Bool等)
322
323 let str1="100"
324
325 // var i=str1.toInt()! //Swift 1.2
326
327 //=100
328
329 let i=(str1 as NSString).integerValue //Swift 2.0
330
331 print(i) //=100
332
333
334
335 let j=(str1 as NSString).intValue
336
337 print(j) //=100
338
339
340
341 let l=(str1 as NSString).longLongValue
342
343 print(l) //=100
344
345
346
347 let str2="10.8"
348
349 let f=(str2 as NSString).floatValue
350
351 print(f) //=10.8
352
353
354
355 let d=(str2 as NSString).doubleValue
356
357 print(d) //=10.8
358
359
360
361 let str3="true"
362
363 let b=(str3 as NSString).boolValue //=true
364
365 print(b) //=true
366
367
368
369
370
371
372
373 // 十一、字符串的遍历 (for in)
374
375 // 说明: for in 是一个遍历语句
376
377 /**
378
379 1: for 后面跟临时变量 in 后面跟数组
380
381 2: 临时变量 不需要定义, 编译器成自动生成一个临时变量
382
383 3:for in 会遍历字符集合,然后把每个集合赋值临时变量
384
385 */
386
387 let A = "ABC"
388
389 /*
390
391 1:str 是字符串变量 是字符集合
392
393 2:temp是临时变量
394
395 3:for in 会遍历 字符集合,然后把每个集合赋值临时变量temp
396
397 */
398
399
400
401 // Swift 1.2
402
403 // for temp in str{
404
405 // print(temp)
406
407 // }
408
409
410
411 // Swift 2.0
412
413 for temp in A.characters {
414
415 print(temps)
416
417 }
418
419 /**
420
421 运行结果
422
423 A
424
425 B
426
427 C
428
429 */
430
431
432
433 }
434
435
436
437 override func didReceiveMemoryWarning() {
438
439 super.didReceiveMemoryWarning()
440
441 // Dispose of any resources that can be recreated.
442
443 }
444
445
446
447 }
|
请发表评论