swift 基本数据类型--字符串
2015-09-23 12:23
423 查看
Swift 字符串是字符有序集合,如“Hello, World!”,它们是由 Swift 的 String
数据类型表示,这也代表字符类型值的集合。
创建字符串
// 定义字符串的方法
var sj =
""
var sj1:String
var sj2 =String()
注:使用let创建常量,则该字符串不可以被修改。使用var定义变量字符串,字符串可以被修改
可以通过使用一个空字符串或创建 String 类的一个实例来创建一个空的字符串,如下所示。还可以检查一个字符串是否为空,使用布尔属性
isEmpty。
当上述代码被编译和执行时,它产生了以下结果:
判断字符串是否相等
var str1 = "Hello"
var str2 = "Hello word"
if str1 == str2 {
println("str1 等于 str2")
}else{
println("str1 不等于 str2")
}
函数检查给定的参数字符串是否以
string 为后缀
var str1 = "hello"
var str2 = "h"
str1.hasSuffix(str2)
例子:
let romeoAndJuliet = [
"Act 1 Scene 1: Verona, A public place",
"Act 1 Scene 2: Capulet's mansion",
"Act 1 Scene 3: A room in Capulet's mansion",
"Act 1 Scene 4: A street outside Capulet's mansion",
"Act 1 Scene 5: The Great Hall in Capulet's mansion",
"Act 2 Scene 1: Outside Capulet's mansion",
"Act 2 Scene 2: Capulet's orchard",
"Act 2 Scene 3: Outside Friar Lawrence's cell",
"Act 2 Scene 4: A street in Verona",
"Act 2 Scene 5: Capulet's mansion",
"Act 2 Scene 6: Friar Lawrence's cell"
]
for scenc inromeoAndJuliet {
if scenc.hasSuffix("Act 1 "){
println(scenc)
}
}
初始化一个字符串也可以使用
var str =String(count:4,repeatedValue:"s"),count表明该字符串的长度为4
,repeatedValue重复值为s
Swift 提供了for-in循环来遍历String的每个字符,但如果程序需要访问String底层存储的Unicode值,可以通过遍历在
UTF8 ,UTF16 和unicodeScalarView属性访问字符串的 UTF-8 ,UTF-16和
UTF-32表示,如下面的示例:
当上述代码被编译和执行时,它产生了以下结果:
大小写转换
字符串是否包含其他字符
字符串统计个数
字符串去空格
字符串分割为字符串数组
字符串转换为NSData
将字符串转换成Int
var str = "1"
str.toInt()
俩种方式:
var str =String(count:4,repeatedValue:c1)
println(str)
str +="aaa"
var sq ="sss"
sq.append(c1)
xjj.substringFromIndex(fromIndex)
xjj.substringToIndex(toIndex)// 根据字符串的索引范围截取字符串xjj.substringWithRange(searchRange)// 在制定索引后插入字符串var insertIndex = advance(xjj.startIndex, 22)xjj.insert("!", atIndex: insertIndex)// 根据索引范围移除字符串xjj.removeAtIndex(insertIndex)str.removeRange(searchRange)// 替换字符串var replaceEndIndex = advance(xjj.startIndex, 13)xjj.stringByReplacingCharactersInRange(searchRange, withString: "ssss")var str = "Hello, playground"var range = str.rangeOfString("play")range?.startIndexstr.removeRange(range!)// 删除指定字符串var str = "Hello, playground"var range = str.rangeOfString("play")range?.startIndexstr.removeRange(range!)
Swift 支持多种方法,和运算符相关的字符串:
注:只要引入Foundation String 就可以使用Object-C中的所有方法
数据类型表示,这也代表字符类型值的集合。
创建字符串
// 定义字符串的方法
var sj =
""
var sj1:String
var sj2 =String()
注:使用let创建常量,则该字符串不可以被修改。使用var定义变量字符串,字符串可以被修改
可以通过使用一个空字符串或创建 String 类的一个实例来创建一个空的字符串,如下所示。还可以检查一个字符串是否为空,使用布尔属性
isEmpty。
var stringA = "" if stringA.isEmpty { println( "stringA is empty" ) } else { println( "stringA is not empty" ) } // Empty string creation using String instance let stringB = String() if stringB.isEmpty { println( "stringB is empty" ) } else { println( "stringB is not empty" ) }
当上述代码被编译和执行时,它产生了以下结果:
stringA is empty stringB is empty
判断字符串是否相等
var str1 = "Hello"
var str2 = "Hello word"
if str1 == str2 {
println("str1 等于 str2")
}else{
println("str1 不等于 str2")
}
函数检查给定的参数字符串是否以
string 为后缀
var str1 = "hello"
var str2 = "h"
str1.hasSuffix(str2)
例子:
let romeoAndJuliet = [
"Act 1 Scene 1: Verona, A public place",
"Act 1 Scene 2: Capulet's mansion",
"Act 1 Scene 3: A room in Capulet's mansion",
"Act 1 Scene 4: A street outside Capulet's mansion",
"Act 1 Scene 5: The Great Hall in Capulet's mansion",
"Act 2 Scene 1: Outside Capulet's mansion",
"Act 2 Scene 2: Capulet's orchard",
"Act 2 Scene 3: Outside Friar Lawrence's cell",
"Act 2 Scene 4: A street in Verona",
"Act 2 Scene 5: Capulet's mansion",
"Act 2 Scene 6: Friar Lawrence's cell"
]
for scenc inromeoAndJuliet {
if scenc.hasSuffix("Act 1 "){
println(scenc)
}
}
初始化一个字符串也可以使用
var str =String(count:4,repeatedValue:"s"),count表明该字符串的长度为4
,repeatedValue重复值为s
Unicode字符串
Swift 提供了for-in循环来遍历String的每个字符,但如果程序需要访问String底层存储的Unicode值,可以通过遍历在UTF8 ,UTF16 和unicodeScalarView属性访问字符串的 UTF-8 ,UTF-16和
UTF-32表示,如下面的示例:
import Cocoa var unicodeString = "Dog‼" println("UTF-8 Codes: ") for code in unicodeString.utf8 { print("\(code) ") } print("\n") println("UTF-16 Codes: ") for code in unicodeString.utf16 { print("\(code) ") }
当上述代码被编译和执行时,它产生了以下结果:
UTF-8 Codes: 68 111 103 226 128 188 240 159 144 182 UTF-16 Codes: 68 111 103 8252 55357 56374
从该上面代码可以看出unicodeString字符串前面的三个引文字符,物流获取哪种形式的Unicode编码程序返回的值都一样
大小写转换
let myString = "Wait a moment, please." let newString = myString.uppercaseString 转大写 //The string is now "WAIT A MOMENT, PLEASE." let myString = "Wait a moment, please." let newString = myString.lowercaseString 转小写 // The string is now "wait a moment, please.
// 3.将首字母大写
var str:String = "sunjing"
str.capitalizedString
字符串是否包含其他字符
var myString = "This is a string test" if myString.rangeOfString("string") { 返回的是该字符串范围的值为可选类型,不存在则返回nil从前向后搜索 println("exists") }
var str:String? str = "This is a string test - string "// 从后向前搜索str?.rangeOfString("string", options: NSStringCompareOptions.BackwardsSearch)还有不区分大小写等等...
字符串统计个数
var myString = "Here is my string, lets count the characters!" count(myString)
字符串去空格
var myString = " Let's trim the whitespace " var newString = myString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
字符串分割为字符串数组
//单一分隔符:只有一种分割符 var myString = "Berlin, Paris, New York, San Francisco" //1.隐式定义字符串数组 var myArray = myString.componentsSeparatedByString(",") //2.显示定义字符串数组 var myArray2 : String[] = myString.componentsSeparatedByString(", ") for em in myArray2 { print(em) //Berlin Paris New York San } //多重分割符:有2个或两个以上分隔符 var myString2 = "One-Two-Three-1 2 3" var array2:String[] = myString2.componentsSeparatedByCharactersInSet(NSCharacterSet (charactersInString: "- ")) //["One", "Two", "Three", "1", "2", "3"]
字符串转换为NSData
let myString = "String to encode" let string: NSString = myString let data = string.dataUsingEncoding(NSUTF8StringEncoding)
将字符串转换成Int
var str = "1"
str.toInt()
字符串的拼接
俩种方式:var str =String(count:4,repeatedValue:c1)
println(str)
str +="aaa"
var sq ="sss"
sq.append(c1)
Rang 在字符串的用法
var xjj = "Welcome to Play Swift! Step by Step learn Swift language from now !"let strRange = Range<String.Index>(start: xjj.startIndex, end: xjj.endIndex)let startIndex = xjj.startIndex// 重开始到第10个字符的索引let endIndex = advance(startIndex, 10)let searchRange = Range<String.Index>(start: startIndex, end: endIndex)xjj.rangeOfString("Step", options: NSStringCompareOptions.CaseInsensitiveSearch, range: searchRange)var toIndex = advance(xjj.startIndex, 4)var fromIndex = advance(xjj.startIndex, 14)//1.从目标标识位后一个字符开始截取余下的字符串
xjj.substringFromIndex(fromIndex)
//2.从第一个字符截取到目标标识位
xjj.substringToIndex(toIndex)// 根据字符串的索引范围截取字符串xjj.substringWithRange(searchRange)// 在制定索引后插入字符串var insertIndex = advance(xjj.startIndex, 22)xjj.insert("!", atIndex: insertIndex)// 根据索引范围移除字符串xjj.removeAtIndex(insertIndex)str.removeRange(searchRange)// 替换字符串var replaceEndIndex = advance(xjj.startIndex, 13)xjj.stringByReplacingCharactersInRange(searchRange, withString: "ssss")var str = "Hello, playground"var range = str.rangeOfString("play")range?.startIndexstr.removeRange(range!)// 删除指定字符串var str = "Hello, playground"var range = str.rangeOfString("play")range?.startIndexstr.removeRange(range!)
字符串函数和操作符
Swift 支持多种方法,和运算符相关的字符串:S.No | 函数/操作符及用途 |
---|---|
1 | isEmpty 返回一个布尔值,确定该字符串是否为空 |
2 | hasPrefix(prefix: String) 函数检查给定的参数字符串是否以 string 为前缀 |
3 | hasSuffix(suffix: String) 函数检查给定的参数字符串是否以 string 为后缀 |
4 | toInt() 函数将数字字符串值转换成整数 |
5 | count() 全局函数用来计算字符串中的字符数 |
6 | utf8 属性返回一个字符串的 UTF-8 表示 |
7 | utf16 属性返回一个字符串的 UTF-16 表示 |
8 | unicodeScalars 属性返回一个字符串的 Unicode 标表示 |
9 | + 运算符用来连接两个字符串,或者一个字符串和一个字符或两个字符 |
10 | += 操作符要追加一个字符串或字符到一个现有的字符串 |
11 | == 操作符以确定两个字符串是否相等 |
12 | < 操作符进行逐一比较,计算以确定一个字符串是否为小于另一个 |
13 | == 操作符以确定两个字符串是否相等 |
相关文章推荐
- Swift中元组及函数
- swift学习笔记(一)NSUserDefaults存储对象的方法
- swift学习笔记(一)NSUserDefaults存储对象的方法
- swift中的函数的使用,嵌套
- Swift - 动态添加删除TableView的单元格(以及内部元件-日期控件)
- swift 风骚的Guard语法
- Swift - 使用TableView的静态单元格进行页面布局
- 黑马程序员——Swift学习笔记:高级类型
- 黑马程序员——Swift学习笔记:高级类型
- 《从零开始学Swift》学习笔记(Day 16)——字典集合
- Swift 2.0学习笔记(Day 16)——字典集合
- swift 元组
- Swift 的类型体系
- Swift资料大全
- 01-swift的简单了解
- 初入Swift之控制语句
- 初入Swift之变量定义
- Swift自适应布局(Adaptive Layout)教程(二)
- Swift自适应布局(Adaptive Layout)教程(一)
- swift中,Optional、?与!之间的关系