Swift中的字符和字符串

//MARK:-

//MARK:- Swift中的字符

/*

Swift和OC字符不一样

1.Swift中表示单个字符是用双引号,必须有类型(Character)描述,否者默认是字符串类型,而且只能放一个字符,否者会报错

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

例如中文:

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

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

*/

var value : Character = "会"

 

//MARK:-

//MARK:- Swift中的字符串的介绍

/*

1、Swift中字符串的类型是String,用双引号""

2、String是一个结构体,性能更高,支持直接遍历

3、Swift提供了String和NSString的无缝转换

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

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

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

*/

 

//MARK:-

//MARK:- 字符串的使用

//MARK:1、字符串的定义

//定义不可变字符串

    let letStr = "hello letString上的福利"

//定义可变字符串

    var varStr = "hello varString"

 

//MARK:2、获取字符串的长度

    let count = letStr.characters.count

    print(count)

    print(letStr.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))//计算字节数

 

//MARK:3、遍历字符串

    for a in letStr.characters {

        print(a)

    }

 

//MARK:4、两个字符串的拼接

    let str1 = "hui"

    var str2 = "qin"

    let pStr = str1 + str2

    print(pStr)

 

//MARK:5、字符串与其它数据类型的拼接

    let age = 28

    let info = "her name is \(pStr),age is \(age)"

    print(info)

 

//MARK:6、字符串的格式化 比如时间:09:09

    let min = 9

    let second = 9

    let time = String(format: "%02d:%02d", arguments: [min,second])

    print(time)

 

//MARK:7、字符串的截取

//方式一:(Swift提供的特殊截取方式)(麻烦)

    //1、定义字符串

    let myStr = "www.pantianfeng.com"

    //2、截取开始位置

    let fromIndex = myStr.startIndex.advancedBy(3)

    let headerStr = myStr.substringFromIndex(fromIndex)

    //3、截取结束位置

    let footerStr = myStr.substringFromIndex(myStr.endIndex.advancedBy(-3))

    //4、截取中间的字符串

    let range = Range(start: myStr.startIndex.advancedBy(4), end: myStr.endIndex.advancedBy(-4))

    let middleStr = myStr.substringWithRange(range)

 

//方式二:(常用)

    //将String转成NSString来使用,在标识符后加:as NSString即可

    var subStr = (myStr as NSString).substringFromIndex(4)

    subStr = (myStr as NSString).substringToIndex(4)

    subStr = (myStr as NSString).substringWithRange(NSRange(location: 4, length: 5))

 

//MARK:8、字符串比较

/*

1、OC中用法:

    NSString *str1 = @"abc";

    NSString *str2 = @"abc";

    方法一:

        if ([str1 compare:str2] == NSOrderedSame)

        {

        NSLog(@"相等");

        }else

        {

        NSLog(@"不相等");

        }

    方法二:

        if ([str1 isEqualToString:str2])

        {

        NSLog(@"相等");

        }else

        {

        NSLog(@"不相等");

        }

2、Swift:(== / != / >= / <=), 和C语言的strcmp一样是逐个比较

*/

    var string1 = "daihuiqin"

    var string2 = "PANTIANFWENG"

    if string1 == string2{

        print("相等")

    }else{

        print("不相等")

    }

 

//MARK:9、判断前后缀

/*

1、OC: 

    NSString *str = @"http://ios.520it.cn";

    if ([str hasPrefix:@"http"]) {

    NSLog(@"是url");

    }

 

    if ([str hasSuffix:@".cn"]) {

    NSLog(@"是天朝顶级域名");

    }

*/

    var string = "http://www.pantianfeng.abc"

    if string.hasPrefix("http"){

        print("是URL")

    }

    if string.hasSuffix("abc"){

        print("是域名")

    }

 

 

//MARK:10、大小写转换

/*

OC:

    NSString *str = @"abc.txt";

    NSLog(@"%@", [str uppercaseString]);

    NSLog(@"%@", [str lowercaseString]);

*/

    print(string1.uppercaseString)

    print(string2.lowercaseString)

 

posted @ 2016-05-04 10:22  skyPeat  阅读(388)  评论(0编辑  收藏  举报