Swift 4.0 学习笔记二。06 Switf中之字符串。

今日本人要写一下OC中的NSString和Swift中的String不等,毕竟项目受到针对字符串的片段施用是不行缺失的!

字符串的介绍

  • 字符串在其它的支出被利用还是老大频繁之
  • OC和Swift中字符串的区分
    • 在OC中字符串类型时NSString,在Swift中字符串类型是String
    • OC中字符串@””,Swift中字符串””
  • 使用 String 的原因
    • String 是一个结构体,性能更强
    • NSString 是一个 OC 对象,性能略差
    • String 支持直接遍历
    • Swift 提供了 String 和 NSString 之间的无缝转换

一、初始化

OC中:

NSString *str = @"OC字符串";

Swift中:

let str:String = "Swift字符串";

字符的定义

  • 概念不可变字符串

let str = "hello Objective-C"
  • 概念可转移字符串

var str = "hello Swift"

第二、字符串的比较

OC中:

NSString *str1 = @"Hello";
NSString *str2 = @"World";
//比较两个字符内容是否相等
if ([str1 isEqualToString:str2])
 {
     NSLog(@"str1和str2是相等的");
 }else
 {
      NSLog(@"str1和str2是不相等的");
 }

Swift中:

let str1:String = "Hello";
let str2:String = "World";      
if  str1 == str2 
{
  print("str1和str2是相等的");
}else{
  print("str1和str2是不相等的");
}

字符串的动

** 获取字符串的尺寸 **

  • 赢得字符集合,再赢得集合的count属性

let count = str.characters.count
  • 遍历字符串

// 字符串遍历
var str = "Hello, Swift"
for c in str.characters {
    print(c)
}

** 字符串拼接 **

  • 简单只字符串的拼接

let str1 = "Hello"
let str2 = "World"
let str3 = str1 + str2
  • 字符串和其余数据类型的拼接

let name = "why"
let age = 18
let info = "my name is \(name), age is \(age)"
  • 字符串的格式化
    依照时间:03:04

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

其三、字符长度的博

OC中:

NSString *str1 = @"Hello";
NSInteger length = [str1 length];
NSLog(@"length==%ld",length);

Swift中:

let str1:String = "Hello";
print(str1.count);

字符串的截取

** Swift中提供了异样之截取方式 **

  • 欠措施特别累
  • Index创建较为麻烦

** 简单的章程是将String转成为NSString来使用 **

  • 当标识符后加:as NSString即可

let myStr = "www.520it.com"
var subStr = (myStr as NSString).substringFromIndex(4)
subStr = (myStr as NSString).substringToIndex(3)
subStr = (myStr as NSString).substringWithRange(NSRange(location: 4, length: 5))

** swift截取方式 **

// 1.定义字符串
let str = "www.520it.com"

// 2.截取开始位置
let fromIndex = str.startIndex.advancedBy(3)
let header = str.substringFromIndex(fromIndex)

// 3.截取结束位置
let toIndex = str.endIndex.advancedBy(-3)
let footer = str.substringToIndex(toIndex)

// 4.截取中间的字符串
let range = Range(start: str.startIndex.advancedBy(4), end: str.endIndex.advancedBy(-4))
let middle = str.substringWithRange(range)
  • 系列文章
    01 Swift最核心的语法变化
    02 Swift中的变量和常量
    03 Swift中之数据类型
    04 Swift逻辑分支
    05 Swift中之巡回
    06 Switf中的字符串
    07 Swift 数组
    08 Swift字典
    09 Swift 元组
    10 Swift 可选类型
    11 Swift 类型转化
    12 Swift 函数
    13 Swift 枚举类型
    14 Swift 结构体
    15 Swift 类的定义
    16 Swift 类的构造函数
    17 Swift 类的析构函数
    18 自动引用计数
    19 Swift 可选链
    20 协议
    21 闭包
    22 Swift 懒加载
    23 Swift 注释

季、大小写变化

OC中:

NSString *str = @"c";
NSLog(@"转为大写:%@",str.uppercaseString);
NSLog(@"转为小写:%@",str.lowercaseString);

Swift中:

let str1:String = "c";
 //转为大写   
print(str1.uppercased());
//转为小写
print(str1.lowercased());

五、字符串转数值

OC中:

NSString *str = @"123";
NSInteger strInt = [str integerValue];

Swift中:
1.将String转为NSString

let str1:String = "123";
(str1 as NSString).intValue

let str = "111";
Int(str)!;

六、遍历字符串获取字符

OC中:

NSString *str = @"hello,world";
for (int i = 0; i < str.length; i++) {
       NSLog(@"%c",[str characterAtIndex:i]);
  }

Swift中:

let str = "hello,world";
for ch in str {
    print(ch);
}

  如果发生怎样不足之处,欢迎指出!谢谢!!!