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

Swift基础篇——字符串

发布时间:2020-12-14 01:43:32 所属栏目:百科 来源:网络整理
导读:字符串 import UIKit /*: 字符: * OC: char charValue = 'a'; */ var charValue1:Character = "a" /*: Swift和OC字符不一样 * 1.Swift是用双引号 * 2.Swift中的字符类型和OC中的也不一样,OC中的字符占一个字节,因为它只包含ASCII表中的字符,而Swift中的字符

字符串

import UIKit

/*: 字符: * 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标准的,所以可以存放时间上所有国家语言的字符(大部分) */

/*: 字符串 * OC的字符串是NSString,Swift的字符串String * OC的字符串是一个对象,Swift字符串是一个结构体,效率更高 * OC中的字符串是一个结尾,Swift字符串不是以结尾 NSString *str = @"abcdef"; NSLog("%@",str); // abc * Swift中的字符串支持遍历 */

let str = "Swiftdef"
print(str)

// 遍历字符串
for c in str.characters
{
    print(c)
}

// 字符串拼接
var str2 = "Math"
str2 += str
str2

// 字符串格式化
// 可以使用()在字符串中插入任何数据
let name = "Swift"
let age = 99
let res = "name = (name),age = (age)"
res

// 2015-10-18 13:04
let str3 = String(format: "%d-%02d-%02d %02d:%02d",arguments: [2015,10,31)">18,31)">13,31)">4])

// 截取字符串
// 提示: 在Swift开发中,我们经常需要将Swift的字符串转换为OC的字符串来操作,并且Swift自身也意识到了这一点,所以在OC字符串和Swift的字符串之间转换相当简单
let str4 = "Apple-Swift"
let str5: NSString = str4
str5.substringToIndex(5)
str5.substringWithRange(NSMakeRange(6,31)">5))

// as 就是把什么当做什么
(str4 as NSString)/*: 计算字符串长度: * C: * char *stringValue = "abc李"; * printf("%tu",strlen(stringValue)); * 打印结果6 * OC: * NSString *stringValue = @"abc李"; * NSLog(@"%tu",stringValue.length); * 打印结果4,以UTF16计算 */

var stringValue = "abc李"
print(stringValue.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
// 打印结果6,和C语言一样计算字节数

/*: 字符串比较: * OC: * NSString *str1 = @"abc"; * NSString *str2 = @"abc"; * if ([str1 compare:str2] == NSOrderedSame) * { * NSLog(@"相等"); * }else * { * NSLog(@"不相等"); * } * if ([str1 isEqualToString:str2]) * { * NSLog(@"相等"); * }else * { * NSLog(@"不相等"); * } * Swift:(== / != / >= / <=),和C语言的strcmp一样是逐个比较 */

var str24 = "abc";
var str25 = "abc";
if str24 == str25
{
    print("相等");
}else
{
    print("不相等");
}

var str6 = "abd";
var str7 = if str6 >= str7
{
    print("大于等于");
}"不大于等于");
}

/*: 判断前后缀 * OC: * NSString *str = @"https://www.baidu.com"; * if ([str hasPrefix:@"https"]) { * NSLog(@"是url"); * } * if ([str hasSuffix:@".com"]) { * NSLog(@"是天朝顶级域名"); * } */

var str8 = "https://www.baidu.com"
if str8.hasPrefix("https") {
    print("是url");
}

.hasSuffix(".com") {
    print("是顶级域名");
}

/*: 大小写转换 * OC: * NSString *str = @"abc.txt"; * NSLog(@"%@",[str uppercaseString]); * NSLog(@"%@",[str lowercaseString]); */

var str9 = "abc.txt";
print(str9.uppercaseString)
print(str9.lowercaseString)


/*: 转换为基本数据类型 * OC: * NSString *str = @"250"; * NSInteger number = [str integerValue]; * NSLog(@"%tu",number); */

var str10 = "250"
// 如果str不能转换为整数,那么可选类型返回nil
// str = "250db" 不能转换所以可能为nil
var number:Int? = Int(str10)
if number != nil
{
    // 以前的版本println会自动拆包,现在的不会
    print(number!)
}

(编辑:李大同)

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

    推荐文章
      热点阅读