swift中character字符与string字符串的使用

github学习地址:https://github.com/potato512/SYSwiftLearning


// 字符(注意:字符中只能有一个字符,不能有两个及以上)
let charA:Character = "A"
print(charA)
        
// 字符转换成字符串
let valid = String(charA)
print(valid)
        
// 获取字符串中指定索引处的字符
let charName = valid[valid.startIndex]
print(charName)
        
// 字符串转换成字符
for charTmp in valid.characters
{
            print("char = \(charTmp)")
}


字符串的初始化

// 1 使用字符串字面量
var name = "DevZhang"
print(name)

// 2 String 实例化
name = String("Hello, DevZhang")
print(name)

// 3 格式化
let workAge = 10
var workAgeString = "\(workAge)"
print(workAgeString)

// 4
workAgeString = String(format: "%d", arguments: [workAge])
print(workAgeString)

字符串索引:index不能用整数操作

var nameIndex = name[name.startIndex]
print("name index = \(nameIndex)")
nameIndex = name[name.startIndex.advancedBy(2)]
print("name index = \(nameIndex)")
nameIndex = name[name.endIndex.advancedBy(-1)]
print("name index = \(nameIndex)")


字符串的操作

1、拼接

// 拼接字符串:+
name = name + ".where are you from?"
print(name)
// 拼接字符:append
let nameChar:Character = "."
name.append(nameChar)
print(name)
// 数据转字符串:join
let nameArray:[String] = ["123", "234", "345"]
let nameMark:String = ","
name += nameArray.joinWithSeparator(nameMark)
print("拼接:name = \(name)")

2、插入

// 插入字符:插入指定位置
name.insert(".", atIndex: name.endIndex)
print("插入:name = \(name)")
name.insertContentsOf(name.characters, at: name.endIndex)
print("插入:name = \(name)")

3、删除

// 删除字符串
let nameDelChar:Character! = name.removeAtIndex(name.startIndex.advancedBy(10))
print("删除:name = \(nameDelChar)")
let range:Range? = name.rangeOfString(".DevZhang")
if range != nil
{
            name.removeRange(range!)
}
print("删除:name = \(name)")
name.removeAll()
print("删除:name = \(name)")
name += "hello, devZhang.where are you from?"
// 字符串删除指定字符串
        var str041 = "My name is DevZhang, your name is DevTang"
        print(str041)
//        let rangeRemove = Range<String.Index>str041.rangeOfString("DevZhang")
//        str041.removeRange(rangeRemove)
        str041 = str041.stringByReplacingOccurrencesOfString("DevTang", withString: "")
        print(str041)



4、子字符串

// 是否包含子串
let rangeDevZhang = name.rangeOfString("DevZhang")
if rangeDevZhang != nil
{
            print(rangeDevZhang)
            
            let indexStart = rangeDevZhang!.startIndex
            let indexEnd = rangeDevZhang!.endIndex
            let indexLength = 0 // indexEnd - indexStart
            print("index start = \(indexStart), end = \(indexEnd), length = \(indexLength)")
}
else
{
            print("不包含")
}

// 截取子字符串substring
name = name.substringFromIndex(name.startIndex.advancedBy(4))
print(name)
name = name.substringToIndex(name.startIndex.advancedBy(30))
print(name)
let rangeName = Range<String.Index>(start: name.startIndex.advancedBy(1), end: name.endIndex.advancedBy(-1))
name = name.substringWithRange(rangeName)
print(name)


5、替换
// 字符串替换replace(当withString为空字符串时,相当于删除)
var str031 = "My name is DevZhang"
let rangeReplace = Range(start: str031.startIndex, end: str031.startIndex.advancedBy(2))
str031.replaceRange(rangeReplace, with: "Your")
print(str031)
var str032 = "hello, DevZhang."
str032 = str032.stringByReplacingOccurrencesOfString("DevZhang", withString: "zhangshaoyu")
print(str032)
str032 = str032.stringByReplacingOccurrencesOfString("zhangshaoyu", withString: "DevZhang", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)
print(str032)


6、修剪

// 字符串修剪trim
let str011 = "DevZhang.\n "
print(str011)
let str012 = str011.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
print(str012)
// 去掉空格
let str013 = str011.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
print(str013)
let charset014 = NSCharacterSet(charactersInString:" \n")
let str015 = str011.stringByTrimmingCharactersInSet(charset014)
print(str015)

7、字符串比较:字符串大小的比较、字符串前缀比较、字符串后缀比较

// 1 字符串字符相等:==、>、<、>=、<=、!=
let varA   = "Hello, Swift!"
let varB   = "Hello, Objective-C!"
        
// 比较字符串是否相等
if varA == varB
{
            print("\(varA) 与 \(varB) 是相等的")
}
else
{
            print("\(varA) 与 \(varB) 是不相等的")
}
        
// 比较字符串是否不相等
if varA != varB
{
            print("\(varA) 与 \(varB) 不相等")
}
else
{
            print("\(varA) 与 \(varB) 相等")
}
        
// 比较字符串的大小(两个字符串的字母逐一比较)
if varA > varB
{
            print("\(varA) 大于 \(varB)")
}
else
{
            print("\(varA) 小于 \(varB)")
}
// 2 字符串前缀相等:hasPrefix
if name.hasPrefix("Hello")
{
            print("有对应的 Hello 前缀")
}
else
{
            print("没有对应的 Hello 前缀")
}
// 3 字符串后缀相等:hasSuffix
if name.hasSuffix("from")
{
            print("有对应的 from 后缀")
}
else
{
            print("没有对应的 from 后缀")
}

8、大小写

// 首字母大写
str041 = str041.capitalizedString
print(str041)
        
// 首字母小写
//        str041 = str041.localizedCapitalizedString
//        print("首字母小写\(str041)")
        
// 字符串小写转换大写
name = name.uppercaseString
print(name)
name = name.lowercaseString
print(name)


9、遍历

// 字符遍历
print("字符遍历")
for char in name.characters
{
            print(char)
}
// unicode遍历:utf8、utf16、unicodeScalars
print("unicode遍历")
for code in name.unicodeScalars
{
            print(code)
}


10、长度:字符的个数

// 字符串长度
let lengthName = name.characters.count
print("\(name) 的长度是 \(lengthName)")

字符串转基础数据类型

// 数值型字符串转换成Int/Long/Float/Double/Bool等(注意:转换值必须添加optional选项" ! ",或" ? ")
let moneyStr:String = String("3025.56")
let moneyNum01:Float! = Float(moneyStr)
print(moneyNum01)
let moneyNum02:Double! = (moneyStr as NSString).doubleValue
print(moneyNum02)
let moneyNum03:String = "1000"
let moneyNum04:Int32 = (moneyNum03 as NSString).intValue
print(moneyNum04)
let validText:String = "true"
let isValid:Bool! = (validText as NSString).boolValue
print(isValid)


字符串转数组
// 字符串的分解子串split,即转换成数组
let str021 = "boy, girl, man, woman"
print(str021)
let str021Array = str021.componentsSeparatedByString(",")
print(str021Array)
let str022 = "boy,girl,man 10 20 30"
print(str022)
let charset023 = NSCharacterSet(charactersInString:", ")
print(charset023)
let str022Array = str022.componentsSeparatedByCharactersInSet(charset023)
print(str022Array)


字符串转Data
// 字符串转换成NSData
let str061:String = "String to encode data"
print(str061)
let data = str061.dataUsingEncoding(NSUTF8StringEncoding)
print(data)

















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值