Swift学习笔记 - 字符串
1. 不可变字符串
Objective-C:
NSString *string1 = @"Hello World!";
Swift:
let string1 = "Hello world!"
2. 可变字符串
Objective-C:
NSMutableString *string2 = [NSMutableString new];
NSMutableString *string3 = [@"" mutableCopy];
Swift:
var string2 = String()
var string3 = ""
3. 输出
Objective-C:
NSLog(@"%lu", (unsigned long)string1.length); // Prints "12"
NSLog(@"%i", !string2.length); // Prints "1"
NSLog(@"%i", [string1 hasPrefix:@"Hello"]); // Prints "1"
NSLog(@"%i", [string1 hasSuffix:@"earth!"]);// Prints "0"
Swift:
println(string1.utf16Count) // Prints "12"
println(countElements(string1)) // Prints "12"
println(string2.isEmpty) // Prints "true"
println(string1.hasPrefix("Hello")) // Prints true
println(string1.hasSuffix("earth!")) // Prints false
4. 比较
Objective-C:
// Prints "string2 equals string3"
if ([string2 isEqualToString:string3]) {
NSLog(@"string2 equals string3");
}
Swift:
// Prints "string2 equals string3"
if string2 == string3 {
println("string2 equals string3")
}
5. 转换
Objective-C:
NSString *fiveString = [@ stringValue]; // "5"
NSInteger five = [fiveString integerValue];
Swift:
let fiveString = "\(5)" // "5"
let five = fiveString.toInt()!
let pi = Double((π as NSString).doubleValue) // 3.14
6. Copy and Mutable Copy
Objective-C:
NSMutableString *string4 = [string1 mutableCopy];
[string4 appendFormat:@"Am I alone?"];
NSLog(@"%@", string1); // Prints "Hello world!"
NSLog(@"%@", string4); // Prints "Hello world! Am I alone?"
NSMutableString *string5 = string4;
[string5 replaceCharactersInRange:NSMakeRange(, )
withString:@"How do you like me now"];
// Prints "Hello world! How do you like me now?"
if ([string4 isEqualToString:string5]) {
NSLog(@"%@", string5);
} NSMutableString *tempHigh = [@"" mutableCopy];
NSMutableString *tempLow = [@"" mutableCopy];
NSString *degreeF = @"\u2109";
[tempHigh appendString:degreeF];
[tempLow appendString:degreeF]; // Prints "High/Low: 85°F/70°F"
NSLog(@"High/Low: %@/%@", tempHigh, tempLow);
Swift:
var string4 = string1
string4 += " Am I alone?"
println(string1) // Prints "Hello world!"
println(string4) // Prints "Hello world! Am I alone?"
var string5 = string4
let startIndex = advance(string5.startIndex, )
string5.replaceRange(startIndex..<string5.endIndex, with: "How do you like me now?")
// Prints "Hello world! How do you like me now?"
if string4 != string5 {
println(string5)
} var tempHigh = ""
var tempLow = ""
let degreeF: Character = "\u{2109}"
tempHigh.append(degreeF)
tempLow.append("\u{2109}" as Character)
// Prints "High/Low: 85°F/70°F"
println("High/Low: \(tempHigh)/\(tempLow)")
Swift学习笔记 - 字符串的更多相关文章
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- Swift学习笔记(一)搭配环境以及代码运行成功
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...
- 《python基础教程(第二版)》学习笔记 字符串(第3章)
<python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符 ...
- swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- swift学习笔记3——类、结构体、枚举
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- swift学习笔记1——基础部分
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- Swift学习笔记一
最近计划把Swift语言系统学习一下,然后将MagViewer用这种新语言重构一次,并且优化一下,这里记录一下Swift的学习笔记. Swift和Objective-C相比,在语法和书写形式上做了很多 ...
- 记录:swift学习笔记1-2
swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用h ...
- swift学习笔记4——扩展、协议
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
随机推荐
- Linux-数据库1
数据库介绍 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种 ...
- Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果
Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果 使用忍者飞镖创建粒子效果 游戏中,诸如烟.火.水滴.落叶等粒子效果,都可以使用粒子系统(particle system)来实现.例如,<明 ...
- Tornado(一)
Tornado 特点 Tornado是一个用Python写的相对简单的.不设障碍的Web服务器架构,用以处理上万的同时的连接口,让实时的Web服务通畅起来.虽然跟现在的一些用Python写的Web架构 ...
- Hibernate lazy(延迟加载)
Hibernat加载策略有两种,分别为即时加载和延迟加载(懒加载或者lazy),get使用的是即时加载,使用get获取数据时会立即查找(会先去缓存查找,如果缓存中没有找到,才会去数据库中查找),而lo ...
- USACO 2017 FEB Platinum mincross 可持久化线段树
题意 上下有两个位置分别对应的序列A.B,长度为n,两序列为n的一个排列.当Ai == Bj时,上下会连一条边.你可以选择序列A或者序列B进行旋转任意K步,如 3 4 1 5 2 旋转两步为 5 2 ...
- Linux知识(4)----文件系统结构
Ubantu 14.04的文件系统结构如下图所示: 参考资料: 1.http://www.cnblogs.com/wen858636827/archive/2012/12/26/2834373.htm ...
- windows server 2008 r2, 每隔一段时间自动关机
前段时间在做Exchange 2010测试的时候,由于windows server 2008 r2试用过期,开机后二个小时就会自动关机,可是我又不想重装系统,加为那样我可能需要重装好多东西,包括 ...
- 反向代理实现同域名下PHP和Java共存
1.背景介绍 之前一直从事PHP开发工作,公司内业务均由PHP实现,最近由于公司架构微调,分配了几个Java项目给团队,但是由于团队对Java不熟悉,有几人对Java理解程度也是略懂,这里说的略懂,真 ...
- Linux下使用ping出现destination is unreachable的问题可能性
ping时出现request time out和destination is unreachable request time out是指icmp包发出后,长时间没有回应,所以会产生request t ...
- switch语句的基本使用
switch是一个多分支的选择语句. 1.基本格式: switch(整型表达式){ case 整型字面量: ...... default : } 解释: 1)整型字面量可 ...