Swift学习1: String应用

Swift的变量/常量定义比C/C++/Delphi宽松得多,会随着初始化的值类型而定,当然可以用:type的方式指定数据类型,XCode非常智能,任何常量/变量未初始化,编译将不通过,将这 方面的失误堵截在运行前.

如:

var a:String;

NSLog("a:%@",a); //编译是不能通过的.


定义变量用var,定义常量用let,而delphi 则用var 和const,定义变量可以在变量后面加:type来指定变量数据类型,如 var num:Int32=1234,delphi也是这样的 ^_^

一般的string用法


下面是更详细的string用法(转载)



下面是转载,但swift3.0未须适用.

  • 作者:Mandarava(鳗驼螺)

版本2:增加了Swift 2.0的语法,与Swift 1.2的语法相比,主要是:advance方法变成了advancedBy方法(但不是简单替换);没有了count方法,count(str)需要变成str.characters.count等。

  1. 字符串的定义
    var str1="hello,mandarava." //字符串变量
    let str2=//字符串常量
    let str3="" //空字符串
    let str4=String() //空字符串
  2. 字符的定义
    var char1:Character="m" //字符变量
    let char2:Character=//字符常量
  3. 字符串的连接
    let str1=
    "mandarava."
    let str3=str1+str2 //=连接str1、str2
    //str3="hello,mandarava."
    //----------------------------------------
    let str4="\(str1)\(str2)" //str4="hello,0)">let strArray=["apple","orange",152)">"cherry"]
    let joinStr=",".join(strArray)
    //joinStr="apple,orange,cherry"
  4. 字符串与字符的连接
    let char1:Character="o"
    "hell"
    let str2=str1+String(char1)
    //str2="hello"
    \(char1)"
    //str3="hello"
    //----------------------------------------
    str1.append(char1)
    //str1="hello"
  5. 字符串与其它类型值的连接
    let xx=10
    let yy=10.8
    "\(xx)+\(yy)=?"
    //str1="10+10.8=?"
    let str2=String(format: "%i+%.1f=?",xx,yy)
    //str2="10+10.8=?"
  6. 字符串枚举字符
    //Swift 1.2
    let str="mandarava"
    for ch in str{
     println(ch)
    }
    //-----------------------
    //Swift 2.0
    str.characters{
     print(ch)
    }
  7. 获取字符串中指定索引处的字符
    let str="Mandarava"
    chr=str[advance(str.startIndex,2)] //Swift 1.2 //chr:Character="n"
    str[str.startIndex.advancedBy(//Swift 2.0 //chr:Character="n"
  8. 计算字符串长度length
    "@鳗驼螺"
    let len1=count(str) //swift 1.2 //=4 
    let len2=str.characters.count //swift 2.0 //=4 
    let blen=str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) //=10
  9. 字符串比较
    let str1="hello,0)">let str2="mandarava."
    let str3="hello,mandarava."
    let comp1 = str1==str2 //false
    let comp2 = str1+str2 == str3 //true
    let comp3 = str1 < str2 //true
    let comp4 = str1 != str2 //true
  10. 是否包含子串contains
    let range=str1.rangeOfString(str2)
    if range != nil{
     //包含
    }
  11. 查找子串indexof
    var "hi,Mandarava."
    let range=str.rangeOfString("Mandarava",options: NSStringCompareOptions.allZeros) //Swift 1.2
    //Swift 2.0
    let startIndex=range?.startIndex //=3
  12. 首字母大写capitalized
    var str1="mandarava is a flower."
    str1.capitalizedString
    //str1="Mandarava Is A Flower.
  13. 转换为大写字母uppercase
    str1=str1.uppercaseString
    //str1="HELLO,MANDARAVA."
  14. 转换为小写字母lowercase
    "HELLO,MANDARAVA."
    str1=str1.lowercaseString
    //str1="hello,mandarava."
  15. 截取字符串substring
    let str2=str1.substringFromIndex(advance(str1.startIndex,152)">6)) let str2=str1.substringFromIndex(str1.startIndex.advancedBy(//Swift 2.0
    //str2="mandarava."
    let str3=str1.substringToIndex(advance(str1.startIndex,152)">5)) let str3=str1.substringToIndex(str1.startIndex.advancedBy(let range=Range<String.Index>(start: advance(str1.startIndex,152)">6),end: advance(str1.endIndex,152)">-1)) String.Index>(start: str1.startIndex.advancedBy(end: str1.endIndex.advancedBy(let str4=str1.substringWithRange(range)
    //str4="mandarava"
  16. 字符串修剪trim
    let str1=" mandarava.\n "
    2=str1.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    3=str1.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
    //str3="mandarava.\n"
    let charset=NSCharacterSet(charactersInString:" \n")
    4=str1.stringByTrimmingCharactersInSet(charset)
    //str4="mandarava."
  17. 字符串的分解子串split
    "boy,girl,man,woman"
    let str1Array=str1.componentsSeparatedByString()
    //str1Array=["boy",152)">" girl",152)">" man",152)">" woman"]
    var str2=
    )
    let str2Array=str2.componentsSeparatedByCharactersInSet(charset)
    //str2Array=["girl",152)">"man",152)">"10",152)">"20",152)">"30"]
  18. 字符串替换replace
    var str1="My name is Mandarava."
    let subRange=Range(start: str1.startIndex,152)">end: advance(str1.startIndex,152)">2)) //Swift 1.2
    let subRange=Range(end: str1.startIndex.advancedBy(//Swift 2.0
    str1.replaceRange(subRange,152)">with: "Your")
    //str1="Your name is Mandarava."
    var str2=
    str2=str2.stringByReplacingOccurrencesOfString(withString: "鳗驼螺")
    //str2="hello,鳗驼螺."
    str2=str2.stringByReplacingOccurrencesOfString("鳗驼螺",152)">options: NSStringCompareOptions.CaseInsensitiveSearch,152)">range: nil)
    
  19. string转换为Int/Long/Float/Double/Bool等
    "100"
    var i=str1.toInt()! //Swift 1.2 //=100 
    var i=(str1 as NSString).integerValue //Swift 2.0 //=100
    var i=(str1 as NSString).intValue //=100
    var l=(str1 as NSString).longLongValue //=100
    var str2="10.8"
    var f=(str2 as NSString).floatValue //=10.8
    var d=(str2 as NSString).doubleValue //=10.8
    var str3="true"
    var b=(str3 as NSString).boolValue //=true

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...