Swift字符串

  • 字符串简介
    • 在OC中定义字符串 @"". Swift中用""(注意点:OC中的字符串是NSString,Swift中的字符串是String)
    • OC中的字符串是一个对象,继承于NSObject。Swift中字符串是一个结构体。Swfit中字符串性能比OC中的高
var str: String = "Hello, playground"   //定义变量时指定类型             
  • 定义字符:var charValue: Character = "韩"
  • C语言和OC字符串都是以\0结尾的,Swift则不是
//C语言
char *sringValue = "abc\0def"
printf("%s", stringValue);
//打印结果为: abc

//OC
NSString *StringValue = @"abc\0def";
printf("%@", stringValue);
//打印结果为: abc

//Swift
var stringValue2 = "abc\0def"
print(stringValue2)
// 打印结果为:abcdef
  • 字符串字符个数
var str: String = "love code";
let length = str.count
print("count:\(length)")    //count:9
  • 拼接
var str2 = "cool"
str += str2
  • 格式化
let num = 30
let name = "lnj"
//在Swift中可以使用 \()来格式化
var str3 = "name = \(name), age = \(num)"    //打印将输出"name = lnj, age = 30"

//format格式化,所有的值必须放到数组中(数组元素为不同类型)
var str4 = String(format: "name:%@,age:%02d",arguments: ["ZhangSan",13]);
  • 判断两个字符串是否相等用 ==
  • 字符串是否为空
var stringA = ""
if stringA.isEmpty {
   print( "stringA 是空的" )
} else {
   print( "stringA 不是空的" )
}
//打印结果: stringA 是空的
  • 前缀和后缀
var str8 = "http://www.blog26.com"
if str8.hasPrefix("www")
{
    print("是url")
}
if str8.hasSuffix(".com")
{
    print("是顶级域名")
}
//打印结果: 是顶级域名
  • 大小写转换
var str9 = "abc.txt"
print(str9.uppercased())
print(str9.lowercased())
  • 转换基本数据类型,返回可选类型
var str10 = "250"
// 如果str不能转换为整数, 那么可选类型返回nil
// str = "250sd", 不能转换所以可能为nil
var numerber:Int? = Int(str10)
if numerber != nil
{
    print(numerber!)
}
  • 截取:将String转化为NSString再截取
//在Swift中,如果需要截取字符串,建议使用OC的字符串截取,因为Swift中String的字符串截取方法使用起来非常复杂
//Swift中字符串可以和OC中的字符串非常方便转换
var str5: NSString = "love code";
var str6 = "love code" as NSString;
var subStr = str5.substring(with: NSMakeRange(1, 3))    //输出:ove
  • 不错的文章
    • 字符串操作(替换、过滤、去掉空格、分割、拼接、字符串截取)
    • Swift字符串(String类、NSString类)常用操作、Swift扩展String类:extension String

你可能感兴趣的:(Swift字符串)