关闭

swift基本语法(总结提炼版)之009 swift 之字符串

标签: swift字符串swift字符串swift语法swift语言
20人阅读 评论(0) 收藏 举报

字符串

Swift 中绝大多数的情况下,推荐使用 String 类型

使用 String 的原因

  • String 是一个结构体,性能更高
    • String 目前具有了绝大多数 NSString 的功能
    • String 支持直接遍历
  • NSString 是一个 OC 对象,性能略差
  • Swift 提供了 String 和 NSString 之间的无缝转换

遍历字符串

let str = "我要飞的更High"


for s in str {

    print(s)

}

字符串拼接

let str1 = "zhangsan"

let str2 = "lisi"

let i = 10


print(str1 + str2)

print("\(str1) \(str2) \(i)")

  • 阶段性小结
    • 直接在 "" 中使用 \(变量名) 的方式可以快速拼接字符串
    • 小伙伴们再也不要考虑 stringWithFormat 了

格式化字符串

for _ in 0...10 {

    let str = String(format: "zhangsan - %04d", arguments: [arc4random_uniform(100)])

    print(str)

}

  • 阶段性小结
    • 在实际开发中,如果需要指定字符串格式,可以使用 String(format:...) 的方式
    • 注意:后面的参数需要放在一个数组中

String & Range 的结合

以下是超级费劲的代码

let str: String = "我要飞的更High"


var subStr = str.substringWithRange(Range<String.Index>(start: str.startIndex, end: str.endIndex))

print(subStr)

建议写法

let str1: NSString = "我要飞的更High"

print(str1.substringWithRange(NSMakeRange(0, 3)))



操练:

/*

字符:

OC: char charValue = 'a';

*/



var charValue1:Character = "a"



/*

Swift和OC字符不一样

1.Swift是用双引号

2.Swift中的字符类型和OC中的也不一样, OC中的字符占一个字节,因为它只包含ASCII表中的字符, 而Swift中的字符除了可以存储ASCII表中的字符还可以存储unicode字符, 

例如中文:

OC:char charValue = '李'; // 错误

Swift: var charValue2:Character = "李" // 正确



OC的字符是遵守ASCII标准的,Swift的字符是遵守unicode标准的, 所以可以存放时间上所有国家语言的字符(大部分)

*/

var charValue2:Character = "李" //正确



/*

注意: 双引号中只能放一个字符, 如下是错误写法

var charValue3:Character = "ab"

*/





/*

字符串:

字符是单个字符的集合, 字符串是多个字符的集合, 想要存放多个字符需要使用字符串



C:

char *stringValue = "ab";

char stringArr = "ab";



OC:

NSString *stringValue = "ab";

*/



var stringValue1 = "ab"



/*

C语言中的字符串是以\0结尾的, 例如:

char *stringValue = "abc\0bcd";

printf("%s", stringValue);

打印结果为abc



OC语言中的字符串也是以\0结尾的, 例如:

NSString *stringValue = @"abc\0bcd";

NSLog(@"%@", stringValue);

打印结果为abc

*/



var stringValue2 = "abc\0bcd"

print(stringValue2)

// 打印结果为abcbcd

// 从此可以看出Swift中的字符串和C语言/OC语言中的字符串是不一样的

Baidu Button BEGIN







Baidu Button END 172.16.140.13 Baidu Button BEGIN Baidu Button END

0


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21次
    • 积分:10
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档