今天由于时间充足,所以多学了一点,嘻嘻
好吧,废话也不多说了,我把能说的都留着了code的注释中,所以,如下所述就好了
1.我们从创建字符串开始吧
var strOne = "Hello Swift!";
//or
var strTwo : String = "Hello Swift!";
println("\(strOne)====\(strTwo)"); //Hello Swift!====Hello Swift!
//so,那么怎么定义一个空字符串呢?
//eg:
var strThree = "";//空字符串定义方式,此方式很熟悉吧
var strFour = String();//这是第二种定义空字符串的方式
//Ok,那么如何判断字符串是否为空呢?
//或者会有OC的isEqualToString比较,或者会有Android的 equals 以及TextUtils.isEmpty(Str),先不管这些了,看Swift怎样判断
//eg:
if strThree.isEmpty {
println("strThree是一个空字符串"); //输出这个
}else{
println("strThree不是一个空字符串");
}
if(strFour.isEmpty){
println("strFour是一个空字符串"); //输出这个
}else{
println("strFour不是一个空字符串");
}
/*综上:也许大家觉得奇怪,其实也没有什么可奇怪滴,嘻嘻
isEmpty是字符串的一个属性,判断字符串是否为空
然后就是if后面的没有()的判断,如上,这两种方式都是行得通的,根据自己的习惯和喜欢来做决定吧
*/
上述说明了创建一个字符串有哪几种方式,并且说明了怎么创建一个空的字符串,并进行了判断
那么我们接着看
2.字符串中的转义字符
因为字符串的操作很普遍,而字符串中呢,也会出现很多""/ ' 等等字符,所以,让我们研究一下转义字符吧,嘻嘻
//转义字符倒是没有变化,如下:
/*
\0 空字符
\\ 反斜杠
\t 制表符
\n 换行符
\r 回车符
\” 双引号
\’ 单引号*/
//是否觉得很是熟悉?话不多说啦,继续我们
//eg:
var strA = "Hello Swift! \n I LIKE YOU!"// \n是换行符
println("strA=\(strA)") /*strA=Hello Swift!
I LIKE YOU!*/
var strB = "\"双引号" // \" 是代表双引号
println("strB=\(strB)") //strB="双引号
var strC = "\'单引号"// \' 代表单引号
println("strC=\(strC)") //strC='单引号
/*
其他的转义字符都一样使用,这里就不一一列举了
*/
转义字符会用了,那么我们再来看看字符串的拼接,这下我们可以看到不一样的拼接了,会很开心吧
3.字符串的拼接
/*
是不是不喜欢OC的那套拼接方式呢?非要[NSString stringWithFormat:...]这类似的去拼接,
是不是很喜欢Android(java语言)的'+','+='等等拼接呢?
那么swift又如何呢?我们拭目以待.
*/
//eg:
var strD = "Hello ->";
var strE = strD + " Swift !";
var strF = "I LIKE YOU!";
strF += "->❤️Swift";
var strG = "\(strE) -> ❤️❤️❤️";
println("\(strE)"); //Hello -> Swift !
println("strF===="+strF); //strF====I LIKE YOU!->❤️Swift
println("strG====\(strG)"); //strG====Hello -> Swift ! -> ❤️❤️❤️
/*
有木有发现很厉害的样子呢?嘻嘻...
确实蛮厉害滴哟,'+'/'+='等等已经可以在swift中使用了哟,是不是减少了部分代码编写呢?
是不是变得更加简洁了,既然如此,那么我们继续往前走着
*/
4.字符串的比较
对,没有错,看了字符串的拼接之后,我们就来比较一下字符串,怎么比较呢?看了就知道了,嘻嘻
//除了刚才的isEmpty,在字符串中,我们有时是不是需要比较两个字符串是否相等?或者首字符是否相同等等这些
//那么,遇到了这些比较,我们又该怎么办呢?别怕别怕,在下面,我们就一起来解决吧
//eg:
var strH = "NapoleonBai";
var strI = "NapoleonBai";
var strJ = "XiaoBaiYang";
//好,我们就判断这三个字符串是否相等
if strH==strI{
println("strH===strI"); //输出:strH===strI
}else{
println("strH!==strI");
}
if(strH == strJ){
println("strH===strJ");
}else{
println("strH!==strJ");//输出:strH!==strJ
}
//好用吧,还是用'=='判断是否相等
//那么我们如何判断首字符相同或者尾字符相同呢?go->
//eg:
if strH.hasPrefix(strI){
println("前缀相同");
}
if strH.hasSuffix(strI){
println("后缀相同");
}
/*
hasPrefix和hasSuffix是什么呢?上面已经表现的很明显了,不过我们可以查看源函数
extension String {
/// Return `true` iff `self` begins with `prefix`
func hasPrefix(prefix: String) -> Bool
/// Return `true` iff `self` ends with `suffix`
func hasSuffix(suffix: String) -> Bool
}
嘻嘻,看不懂也没有关系,这不是重点,重点是这两个函数返回一个Bool值,
hasPrefix是用来判断字符串前缀相同
hasSuffix是用来判断字符串后缀相同
这下明白了吧.实际开发中,根据需要选择哈
*/
5.关于字符串其他
其实,关于字符串,暂时也讲解不了很多,再提一下转大小写:
uppercaseString 字符串大写转换/lowercaseString 字符串转换小写
6.关于字符串,不得不提的就是字符
那么我们就看看字符是怎样滴吧
<span style="white-space:pre"> </span>//好吧,关于字符串的讲解就到此结束了,不过,还剩下了一个字符,嘻嘻,那继续字符?
//众所周知,字符串就是一个一个的字符相组合而成,即字符串是字符的集合.所以:我们就看看字符
/*
格式:
变量关键字和常量关键字 变量 : Character = 字符值
注意点:
字符值 必须用双引号括起来, 必须是一个字符
*/
//eg:
var chaOne :Character = "H";
println("chaOne===\(chaOne)");
//那么,我们怎么拆分一个字符串成为一个一个的字符呢?
//eg:
var strK="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for tempCha in strK{
//var str="Hello "+tempCha;//error:Cannot invoke'+' with an argument list of type '(StringLiteralConvertible,Character)'
//println("---->"+tempCha);//error:Could not find an overload for'println' that accepts the supplied arguments
//目前字符与字符串的拼接这是一种方法,上述方法已经不试用
println("---->\(tempCha)");
/*
---->A
---->B
---->C
---->D
---->E
---->F
---->G
---->H
---->I
---->J
---->K
---->L
---->M
---->N
---->O
---->P
---->Q
---->R
---->S
---->T
---->U
---->V
---->W
---->X
---->Y
---->Z
//依次打印全部
*/
}
/*
上面用了字符串遍历
说明:
for in 是一个遍历语句
1:for 后面跟临时变量 in 后面跟数组<这里的字符串就是一个字符数组>
2:临时变量 不需要定义,编译器成自动生成一个临时变量
3:for in 会遍历字符集合,然后把每个集合赋值临时变量
*/
//到此,字符串的操作基本上就OK了,其他的操作就要靠自己去发掘了
其实注释中已经说得很明白了,我只是觉得光贴代码和注释看起来比较枯燥.嘻嘻
好啦,暂时就这样吧.学着写blog,学着学习..走起