加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift 4. 字符串

发布时间:2020-12-14 06:46:35 所属栏目:百科 来源:网络整理
导读:swift 4. 字符串 标签:swift 2. 用前缀或后缀法比较字符串 用 hasPrefix 和 hasSuffix 这2个字符串的对象方法,来判断和比较,他们返回boolean值的true或falsely 看个例子: //申明一个字符数组,后面会讲到 var string1 = [ "Act1:1:Dojo" , "Act1:2:Do" ,

swift 4. 字符串

标签:swift


2. 用前缀或后缀法比较字符串

hasPrefixhasSuffix这2个字符串的对象方法,来判断和比较,他们返回boolean值的true或falsely

看个例子:

//申明一个字符数组,后面会讲到
var string1 = [
    "Act1:1:Dojo","Act1:2:Do","Act1:3:Dojo","Act1:4:Dojo"
]
//申明2个整型变量,记住中间要用逗号啊。
var j = 0,k = 0,d = 0

for i in string1 {
    if i.hasPrefix("Act1") {
        j++
    }
    if i.hasSuffix("Do"){
        k++
    }

    if i.containsString("Do") {
        d++
    }
}

print("有Act前缀的数有(j)个") //输出4
print("有Do后缀的数有(k)个") //输出1
print("包含Do的数有(d)个") //输出4

3. 大小写转换

大小写转换是一般的语言中都会有的函数方法,swift中用字符串对象的属性uppercaseStringlowercaseStringcapitalizedString来转换,记住是属性。不是函数,也不是方法:

//大小写转换

var string2 = "hi,my name is yangyi,what`s your name?"

var string3 = "hi,My Name IS Yangyi,what`s your name?"

var string4 = "hi,what`s your name?"

var string_upp = string2.uppercaseString

var string_lower = string3.lowercaseString

var first_upp = string4.capitalizedString

print("全部大写(string_upp)") 
//全部大写HI,MY NAME IS YANGYI,WHAT`S YOUR NAME?

print("全部小写(string_lower)") 
//全部小写hi,what`s your name?

print("首字母大写(first_upp)") 
//首字母大写Hi,My Name Is Yangyi,What`s Your Name?

我顺便来复习下其他语言中是如何大小写转换的:

//javascript
var a = "hello";
var b = "HellO";
var a_upper = a.toUpperCase();  //大写
var a_lower = a.toLowerCase();  //小写
//php
$a = "hello,word!";
$a_upper = strtoupper($a); //转换成大写
$b_lower = strtolower($b); //转换成小写
$first_upper = ucfirst($b); //首字母大写

4. 遍历一个字符串

在swift2中遍历字符串得用字符串的一个 characters属性:

var str = "Hello,Swift~"
for c in str.characters {
    print(c,terminator: " ")
}

输出:

H e l l o,S w i f t ~

5. 获取字符串中的某个字符

swift2中不能用str[0],str[1]等方式,得用index索引的方式,定位到位置:

startIndex 标示字符串的0开始的一个索引

var str = "Hello,Swift"
let startIndex = str.startIndex  //0
startIndex  //0
str[startIndex] //H

advancedBy 从索引位置开始取第几个值

var str = "Hello,Swift"
let startIndex = str.startIndex  //0
startIndex  //0
str[startIndex.advancedBy(1)] //e
str[startIndex.advancedBy(7)] //S

predecessor 取前一个 succesor 取后一个

var str = "Hello,Swift"
let startIndex = str.startIndex  //0
let spaceIndex = startIndex.advancedBy(6) // " "定位到空格
str[spaceIndex.predecessor()] // 空格前是","
str[spaceIndex.successor()] // 空格后是"S"

endIndex 最后一个字符索引。

var str = "Hello,Swift"
let endIndex = str.endIndex // 13 最后一位是13。
str[endIndex.predecessor()] //但是13没有,只有12.所以得取前一个。

所以,startIndex 和 endIndex是一个前闭后开 0..<13这样的结构。

Range 去一个区间的字符

str[startIndex..<spaceIndex] // Hello,

其它的一些字符串的函数用法:

let range = startIndex..<spaceIndex.predecessor() // 生成一个range 0..<5
str.replaceRange(range,with: "Hi") // 替换一个区间 Hi,Swift
str.appendContentsOf("!!!") // 在尾部追加 "Hi,Swift!!!"
str.insert("?",atIndex: str.endIndex) //在一个索引出,插入一个字符 Hi,Swift!!!?
str.removeAtIndex( str.endIndex.predecessor() ) // 移除一个字符,在索引处。 // 返回 ?
str.removeRange( str.endIndex.advancedBy(-2)..<str.endIndex ) //移除一个区间。Hi,Swift!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读