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 类型betway必威官网转化
    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);
}

  如若产生怎样不足之处,欢迎指出!谢谢!!!

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注