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未须适用.
版本2:增加了Swift 2.0的语法,与Swift 1.2的语法相比,主要是:advance方法变成了advancedBy方法(但不是简单替换);没有了count方法,count(str)需要变成str.characters.count等。
- 字符串的定义
var str1="hello,mandarava."
let str2=//字符串常量
let str3=""
let str4=String()
- 字符的定义
var char1:Character="m"
let char2:Character=//字符常量
- 字符串的连接
let str1=
"mandarava."
let str3=str1+str2
let str4="(str1)(str2)" strArray=["apple","orange",152)">"cherry"]
let joinStr=",".join(strArray)
- 字符串与字符的连接
let char1:Character="o"
"hell"
let str2=str1+String(char1)
"
str1.append(char1)
- 字符串与其它类型值的连接
let xx=10
let yy=10.8
"(xx)+(yy)=?"
str2=String(format: "%i+%.1f=?",xx,yy)
- 字符串枚举字符
let str="mandarava"
for ch in str{
println(ch)
}
str.characters{
print(ch)
}
- 获取字符串中指定索引处的字符
let str="Mandarava"
chr=str[advance(str.startIndex,2)]
str[str.startIndex.advancedBy(//Swift 2.0 //chr:Character="n"
- 计算字符串长度length
"@鳗驼螺"
let len1=count(str)
let len2=str.characters.count
let blen=str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
- 字符串比较
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
- 是否包含子串contains
let range=str1.rangeOfString(str2)
if range != nil{
//包含
}
- 查找子串indexof
var "hi,Mandarava."
let range=str.rangeOfString("Mandarava",options: NSStringCompareOptions.allZeros)
//Swift 2.0
let startIndex=range?.startIndex
- 首字母大写capitalized
var str1="mandarava is a flower."
str1.capitalizedString
- 转换为大写字母uppercase
str1=str1.uppercaseString
- 转换为小写字母lowercase
"HELLO,MANDARAVA."
str1=str1.lowercaseString
- 截取字符串substring
let str2=str1.substringFromIndex(advance(str1.startIndex,152)">6)) str2=str1.substringFromIndex(str1.startIndex.advancedBy(//Swift 2.0
str3=str1.substringToIndex(advance(str1.startIndex,152)">5)) str3=str1.substringToIndex(str1.startIndex.advancedBy(let range=Range<String.Index>(start: advance(str1.startIndex,152)">6),end: advance(str1.endIndex,152)">-1)) .Index>(start: str1.startIndex.advancedBy(end: str1.endIndex.advancedBy(let str4=str1.substringWithRange(range)
- 字符串修剪trim
let str1=" mandarava.n "
2=str1.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
=str1.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
charset=NSCharacterSet(charactersInString:" n")
4=str1.stringByTrimmingCharactersInSet(charset)
- 字符串的分解子串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"]
- 字符串替换replace
var str1="My name is Mandarava."
let subRange=Range(start: str1.startIndex,152)">end: advance(str1.startIndex,152)">2))
let subRange=Range(end: str1.startIndex.advancedBy(//Swift 2.0
str1.replaceRange(subRange,152)">with: "Your")
var str2=
str2=str2.stringByReplacingOccurrencesOfString(withString: "鳗驼螺")
str2=str2.stringByReplacingOccurrencesOfString("鳗驼螺",152)">options: NSStringCompareOptions.CaseInsensitiveSearch,152)">range: nil)
- string转换为Int/Long/Float/Double/Bool等
"100"
var i=str1.toInt()!
var i=(str1 as NSString).integerValue
var i=(str1 as NSString).intValue
var l=(str1 as NSString).longLongValue
var str2="10.8"
var f=(str2 as NSString).floatValue
var d=(str2 as NSString).doubleValue
var str3="true"
var b=(str3 as NSString).boolValue
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|