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. import UIKit
  16.  
  17. class ViewController: UIViewController {
  18.  
  19. override func viewDidLoad() {
  20.  
  21. super.viewDidLoad()
  22.  
  23. // Do any additional setup after loading the view, typically from a nib.
  24.  
  25. // 一、定义字符串
  26.  
  27.    var str1="Hello,Swift." //字符串变量
  28.  
  29. let str2="Hello,Swift." //字符串常量
  30.  
  31. let str3=" " //空字符串
  32.  
  33. let str4 = String() //空字符串
  34.  
  35. // 二、定义字符
  36.  
  37. // 格式:变量关键字和常量关键字 变量 : Character = 字符值
  38.  
  39. // 注意点:字符值 必须用双引号括起来, 必须是一个字符
  40.  
  41. var char1:Character = "s" //字符变量
  42.  
  43. let char2:Character = "s" //字符常量
  44.  
  45. // 字符串和字符的关系:字符串是由N个字符组成的,即字符串是字符的集合。
  46.  
  47. // 例子:
  48.  
  49.    let str = "ABC" //字符串"ABC" 是有 三个字符组成的分别是 字符”A",字符“B",字符”C"
  50.  
  51. print("str=\(str)")
  52.  
  53. // 三、字符串与字符串的拼接、字符串与字符的拼接
  54.  
  55. // 字符串和字符的值可以通过加法运算符 (+) 相加在一起并创建一个新的字符串值:
  56.  
  57. let string1 = "Hello"
  58.  
  59. let string2 = " Swift"
  60.  
  61. let character1: Character = "!"
  62.  
  63. let character2: Character = "?"
  64.  
  65. let stringAndCharacter = string1 + String(character1) // 等于 "Hello!"
  66.  
  67. let stringAndString = string1 + string2 // 等于 "Hello Swift"
  68.  
  69. let characterAndString = String(character1) + string1 // 等于 "!Hello"
  70.  
  71. let characterAndCharacter = String(character1) + String(character2) // 等于 "!?"
  72.  
  73. // 也可以通过加法赋值运算符 (+=) 将一个字符串或者字符添加到一个已经存在字符串变量上:
  74.  
  75. var studying = "study my"
  76.  
  77. studying += string2
  78.  
  79. // studying 现在等于 "study my Swift"
  80.  
  81. var welcome = "good morning"
  82.  
  83. welcome += String(character1)
  84.  
  85. // welcome 现在等于 "good morning!"
  86.  
  87. // 注意:不能将一个字符串或者字符添加到一个已经存在的字符变量上,因为字符变量只能包含一个字符。
  88.  
  89. // 字符串与其它类型值的连接
  90.  
  91. let xx=
  92.  
  93. let yy=10.8
  94.  
  95. let str1="\(xx)+\(yy)=?"
  96.  
  97. print(str1) //str1="10+10.8=?"
  98.  
  99. let str2=String(format: "%i+%.1f=?", xx, yy)
  100.  
  101. print(str2) //str2="10+10.8=?"
  102.  
  103. // 四、字符串的(插值)插入
  104.  
  105. // 字符串插值是一种全新的构建字符串的方式,可以在其中包含常量、变量、字面量和表达式。插入的字符串字面量的每一项都被包裹在以反斜线为前缀的圆括号中:
  106.  
  107. let multiplier =
  108.  
  109. let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
  110.  
  111. print(message) // message is --> "3 times 2.5 is 7.5"
  112.  
  113. // 反斜杠表示插入的意思
  114.  
  115. // 在上面的例子中,multiplier 作为 \(multiplier) 被插入到一个字符串字面量中。当创建字符串执行插值计算时此占位符会被替换为 multiplier 实际的值。
  116.  
  117. // multiplier 的值也作为字符串中后面表达式的一部分。该表达式计算 Double(multiplier) * 2.5 的值并将结果 (7.5) 插入到字符串中。在这个例子中,表达式写为 \(Double(multiplier) * 2.5) 并包含在字符串字面量中。
  118.  
  119. // 注意:您插值字符串中写在括号中的表达式不能包含非转义双引号 (") 和反斜杠 (\),并且不能包含回车或换行符。
  120.  
  121. // 五、字符串比较
  122.  
  123.    let str1="Hello,"
  124.  
  125. let str2="Swift."
  126.  
  127. let str3="Hello,Swift."
  128.  
  129. let comp1 = str1==str2 //false ---> 不等于
  130.  
  131. print(comp1)
  132.  
  133. let comp2 = str1+str2 == str3 //true ---> 等于
  134.  
  135. print(comp2)
  136.  
  137. let comp3 = str1 < str2 //true ---> 等于
  138.  
  139. print(comp3)
  140.  
  141. let comp4 = str1 != str2 //true ---> 等于
  142.  
  143. print(comp4)
  144.  
  145. // 六、字符串长度的计算
  146.  
  147. let str="Hello,Swift."
  148.  
  149. // let len1=count(str) //swift 1.2
  150.  
  151. print(len2) //len1=12
  152.  
  153. let len2=str.characters.count //swift 2.0
  154.  
  155. print(len2) //len2=12
  156.  
  157. // 七、查找字符串是否包含子串Swift
  158.  
  159. let str1="Hello,Swift."
  160.  
  161. let str2="Swift"
  162.  
  163. let range=str1.rangeOfString(str2)
  164.  
  165. if range != nil{
  166.  
  167. //包含
  168.  
  169. }
  170.  
  171. // 七、查找字符串indexof
  172.  
  173. let str="Hello,Swift."
  174.  
  175. // let range=str.rangeOfString("Swift",options:NSStringCompareOptions.allZeros) //Swift 1.2
  176.  
  177. let range=str.rangeOfString("Swift", options: NSStringCompareOptions()) //Swift 2.0
  178.  
  179. let strIndex=range?.startIndex
  180.  
  181. print(strIndex) //startIndex=3
  182.  
  183. // 八、字符串大小写
  184.  
  185. //首字母大写capitalized
  186.  
  187. let str1="mandarava is a flower."
  188.  
  189. str1.capitalizedString
  190.  
  191. print(str1) //str1="Mandarava Is A Flower.
  192.  
  193. //转换为大写字母uppercase
  194.  
  195. var str2="hello, mandarava."
  196.  
  197. str2=str2.uppercaseString
  198.  
  199. print(str2)//str1="HELLO, MANDARAVA."
  200.  
  201. //转换为小写字母lowercase
  202.  
  203. var str3="HELLO, MANDARAVA."
  204.  
  205. str3=str3.lowercaseString
  206.  
  207. print(str3)//str1="hello, mandarava."
  208.  
  209. // 九、字符串分割与打断
  210.  
  211. let str1="boy, girl, man, woman"
  212.  
  213. let str1Array=str1.componentsSeparatedByString(",")
  214.  
  215. print(str1Array) //str1Array=["boy", " girl", " man", " woman"]
  216.  
  217. let str2="boy,girl,man 10 20 30"
  218.  
  219. let charset=NSCharacterSet(charactersInString:", ")
  220.  
  221.   let str2Array=str2.componentsSeparatedByCharactersInSet(charset)
  222.  
  223. print(str2Array) //str2Array=["boy", "girl", "man", "10", "20", "30"]
  224.  
  225. // 十、字符串的转换(string转换为Int/Long/Float/Double/Bool等)
  226.  
  227. let str1=""
  228.  
  229. // var i=str1.toInt()! //Swift 1.2
  230.  
  231. //=100
  232.  
  233. let i=(str1 as NSString).integerValue //Swift 2.0
  234.  
  235. print(i) //=100
  236.  
  237. let j=(str1 as NSString).intValue
  238.  
  239. print(j) //=100
  240.  
  241. let l=(str1 as NSString).longLongValue
  242.  
  243. print(l) //=100
  244.  
  245. let str2="10.8"
  246.  
  247. let f=(str2 as NSString).floatValue
  248.  
  249. print(f) //=10.8
  250.  
  251. let d=(str2 as NSString).doubleValue
  252.  
  253. print(d) //=10.8
  254.  
  255. let str3="true"
  256.  
  257. let b=(str3 as NSString).boolValue //=true
  258.  
  259. print(b) //=true
  260.  
  261. // 十一、字符串的遍历 (for in)
  262.  
  263. // 说明: for in 是一个遍历语句
  264.  
  265.     /**
  266.  
  267. 1: for 后面跟临时变量 in 后面跟数组
  268.  
  269. 2: 临时变量 不需要定义, 编译器成自动生成一个临时变量
  270.  
  271. 3:for in 会遍历字符集合,然后把每个集合赋值临时变量
  272.  
  273. */
  274.  
  275.     let A = "ABC"
  276.  
  277. /*
  278.  
  279. 1:str 是字符串变量 是字符集合
  280.  
  281. 2:temp是临时变量
  282.  
  283. 3:for in 会遍历 字符集合,然后把每个集合赋值临时变量temp
  284.  
  285. */
  286.  
  287. // Swift 1.2
  288.  
  289. // for temp in str{
  290.  
  291. // print(temp)
  292.  
  293. // }
  294.  
  295. // Swift 2.0
  296.  
  297. for temp in A.characters {
  298.  
  299. print(temps)
  300.  
  301. }
  302.  
  303. /**
  304.  
  305. 运行结果
  306.  
  307. A
  308.  
  309. B
  310.  
  311. C
  312.  
  313. */
  314.  
  315. }
  316.  
  317. override func didReceiveMemoryWarning() {
  318.  
  319. super.didReceiveMemoryWarning()
  320.  
  321. // Dispose of any resources that can be recreated.
  322.  
  323. }
  324.  
  325. }

iOS -Swift 3.0 -String(字符串常规用法)的更多相关文章

  1. iOS -Swift 3.0 -for(循环语句用法)

    // // ViewController.swift // Swift-循环语句 // // Created by luorende on 16/12/08. // Copyright © 2016年 ...

  2. 读懂Swift 2.0中字符串设计思路的改变

    Swift提供了一种高性能的,兼容Unicode编码的String实现作为标准库的一部分.在 Swift2中,String类型不再遵守CollectionType协议.在以前,String类型是字符的 ...

  3. iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)

    // // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...

  4. swift 2.0 语法 字符串

    //: Playground - noun: a place where people can play import UIKit /*: 字符串 * OC中的字符串是一个对象, Swift中的字符串 ...

  5. iOS -Swift 3.0 -UILabel属性大全

    昨天研究了一下苹果近两年新出的Swift语言,感觉学起来并不是很吃力,毕竟自己有过Objective-C的语言功底,所以各方面的属性控件还是一眼就可以认出的,只是Swift的写法与Objective- ...

  6. iOS -Swift 3.0 -UIButton属性大全

    // //  ViewController.swift //  Swift-UIButton // //  Created by luorende on 16/9/9. //  Copyright © ...

  7. Swift 2.0 单例的用法

    单例我们项目中是很常用的,今天刚学了在swift中怎么写单例和调用单例.下面我们简单的介绍一下.我们先看看Swift单例的写法: import UIKit class Shareinstance: N ...

  8. GridView的常规用法

    GridView控件在Asp.net中相当常用,以下是控件的解释,有些是常用的,有些是偶尔用到的,查找.使用.记录,仅此而已.(最后附带DropDownList控件) ASP.NET中GridView ...

  9. iOS - Swift String 字符串

    前言 public struct String public class NSString : NSObject, NSCopying, NSMutableCopying, NSSecureCodin ...

随机推荐

  1. thrift

    环境准备: 1.下载window版本的thrift编译器 2.下载idea的thirft插件 3.设置thrift编译工具为:步骤1下载的编译器 4.编写thrift文件 namespace java ...

  2. linux下php-fpm 启动参数及重要配置

    约定几个目录 /usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.iniI. php-fp ...

  3. faker image

    $faker->image http://placehold.it http://placekitten.com/g/200/300 带文字 https://placeholdit.imgix. ...

  4. Behavior-Based Intelligence

    Computer Science An Overview _J. Glenn Brookshear _11th Edition Early work in artificial intelligenc ...

  5. Git学习笔记(持续更新)

    1.强制同步为远程的代码 远程仓库回退了commit的情况下(第2条描述之情况),强制同步远程的代码到本地 #更新远程最新的所有代码,但是不merge或者rebase git fetch --all ...

  6. 如何在外网中访问自己在另一个局域网中的某个机器(SSH为例)

    UBUNTU 14.04 LTS 为例 如何在外网中访问自己在另一个局域网中的某个机器(SSH为例) 2013-05-01 16:02 2693人阅读 评论(0) 收藏 举报 情景描述: 计算机C1放 ...

  7. 答CsdnBlogger问-关于定时和后台服务问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 前段时间写了不少博客,在问答页面也陆续回答几十个问题,之后Csdn乙同学找到我,说要推荐我参加问答类 ...

  8. 设计模式:抽象工厂模式(Abstract Factory)

    定   义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 结构图: 示例结构图: 实体类: class User { public int Id { get; set; } p ...

  9. 20145211 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)

    实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和IDEA ...

  10. json的eval为什么要用msg.d

    在做一个关于搜索功能时用到了jquery autocomplete,发现返回数据时都用到了一个.d,比如: var datas = eval('(' + msg.d + ')'); 这个.d是什么呢, ...