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学习笔记 - 字符串的更多相关文章

  1. 【swift学习笔记】二.页面转跳数据回传

    上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...

  2. Swift学习笔记(一)搭配环境以及代码运行成功

    原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...

  3. 《python基础教程(第二版)》学习笔记 字符串(第3章)

    <python基础教程(第二版)>学习笔记 字符串(第3章)所有的基本的序列操作(索引,分片,乘法,判断成员资格,求长度,求最大最小值)对字符串也适用.字符串是不可以改变的:格式化输出字符 ...

  4. swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  5. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  6. swift学习笔记1——基础部分

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  7. Swift学习笔记一

    最近计划把Swift语言系统学习一下,然后将MagViewer用这种新语言重构一次,并且优化一下,这里记录一下Swift的学习笔记. Swift和Objective-C相比,在语法和书写形式上做了很多 ...

  8. 记录:swift学习笔记1-2

    swift还在不断的更新做细微的调整,都说早起的鸟儿有虫吃,那么我们早点出发吧,趁着国内绝大多数的coder们还没有开始大范围普遍应用. 网上有些大神说:swift很简单!我不同意这个观点,假如你用h ...

  9. swift学习笔记4——扩展、协议

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

随机推荐

  1. Kail Linux渗透测试教程之免杀Payload生成工具Veil

    Kail Linux渗透测试教程之免杀Payload生成工具Veil 免杀Payload生成工具——Veil Kail Linux渗透测试教程之免杀Payload生成工具Veil,Veil是一款利用M ...

  2. python解决组合问题

    1.问题描述 比如9个数中取4个数的组合以及列出各种组合,该如何做? 我们可以考虑以下一个简单组合:从1,2,3,4,5,6中,如何选取任意四个数的组合. 固定:1   2  3  ,组合有1234 ...

  3. openssl-0.9.8k_WIN32(RSA密钥生成工具

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha openssl-0.9.8k_WIN32(RSA密钥生成工具

  4. [BZOJ4289][PA2012]TAX(最短路)

    首先考虑一种暴力做法,为每条边拆成两条有向边,各建一个点.若某两条边有公共点,则在边所对应的点之间连一条边,权值为两条边中的较大值.这样跑最短路是$O(m^2\log m)$的. 用类似网络流中补流的 ...

  5. [BZOJ4892][TJOI2017]DNA(后缀数组)

    题目描述 加里敦大学的生物研究所,发现了决定人喜不喜欢吃藕的基因序列S,有这个序列的碱基序列就会表现出喜欢吃藕的性状,但是研究人员发现对碱基序列S,任意修改其中不超过3个碱基,依然能够表现出吃藕的性状 ...

  6. WordPress插件会员简化1.58 -任意文件下载漏洞(附poc)

    今天我们将讨论在WordPress插件WordPress插件与重点会员简化v1.58作为这个剧本的创作时间不打补丁的扶贫开发实践.脆弱脚本如下: CVE-ID:cve-2017-1002008 当然, ...

  7. java高并发程序设计模式-并发级别:阻塞、无障碍、无锁、无等待【转载】

    一般认为并发可以分为阻塞与非阻塞,对于非阻塞可以进一步细分为无障碍.无锁.无等待,下面就对这几个并发级别,作一些简单的介绍. 1.阻塞 阻塞是指一个线程进入临界区后,其它线程就必须在临界区外等待,待进 ...

  8. Markdown---锚点使用

    Markdown目前还没有支持文内锚点的标记语法:但是支持html,所以锚点可以通过html语法来实现 使用方法 <a href='#jump'>第一个题目</a> 带有锚点的 ...

  9. ThinkPHP -- 基础入门

      ThinkPHP文件结构说明: |——ThinkPHP.php    框架入口文件    |——Common            框架公共文件目录    |——Conf              ...

  10. Codeforces Round #305 (Div. 1) A. Mike and Frog 暴力

     A. Mike and Frog Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/547/pr ...