iOS -Swift 3.0 -String,字符串常规用法

  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 }