Swift学习笔记(十四)——字符,常量字符串与变量字符串
在学习Java过程中,字符串碰到过String和StringBuffer,当中前者是不可变的,不能对字符串进行改动;后者是可变的,能够不断改动。
来到Swift中,对字符串的定义变的更加简单。
(1)概述
Swift中,用let 声明的是字符串常量,不能进行改动。
用var声明的是字符串变量,能够改动。通过代码来演示。
let str1 = "Hello1"
var str2 = "Hello2" str1 = "world1"//报错:cannot assign to 'let' value 'str1'
str2 = "world2" str1 += "world1"//报错:binary operator '+=' cannot be applied to two String operands str1 += 'world1'
str2 += "world2"
由代码可见,let声明的字符串不可变,var声明的字符串可变。
(2)字符串初始化
Swift字符串有两种初始化方法。第一种方法是赋空值。另外一种是用String()类实例化。代码例如以下:
var str3=""
var str4 = String()
(3)字符串为空推断
有时候代码中须要推断一个字符串是否为空,能够使用isEmpty()方法。代码及输出例如以下:
var str1 = "Hello"
let str2 = "Hello"
var str3 = ""
var str4 = String() str1.isEmpty //输出false
str2.isEmpty //输出false
str3.isEmpty //输出true
str4.isEmpty //输出true
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。
(4)使用for-in循环遍历字符串
var str1 = "Hello"
//使用for-in 循环遍历字符串
for index in str1{ println(index)
}
输出结果例如以下:
。
(5)Swift字符
同C语言一样。在Swift中也有字符的概念。使用keywordCharacter声明。代码例如以下:
var ch:Character = "h"
println(ch)
结果输出例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。
当中字符串还能够使用append()方法加入一个字符,可是不能使用append()方法加入一个String。
代码例如以下:
var ch:Character = "h" var str1:String = "Hello"
var str2:String = "World" str1.append(ch)//通过
str1.append(str2)//报错:Cannot invoke 'append' with an argument list of type '(String)'
输出结果例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。
(6)字符串中+=运算符的使用
在字符串中有一个重要的运算符:+=,能够用来拼接两个字符串。可是不能拼接字符。
代码例如以下:
var ch:Character = "h" var str1:String = "Hello"
var str2:String = "World" str1 += str2//通过,能够连接两个字符串
str1 += ch//报错例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。
最后String拼接后输出结果:
。
(7)计算字符串长度
我使用的Xcode版本号是最新的Version 6.4(6E35b),可能在不同的Xcode版本号和Swift版本号中该方法会有所不同。网上说能够使用countElements(str),来计算字符串长度。可是亲測在我的这个版本号中不适用,Xcode6.4仅仅能使用count(str)方法来计算String长度。而且count()不能计算字符Character的 长度。由于字符默认是1,不须要计算。
大家能够在自己的环境上尝试countElements(),count() 两个方法。
代码例如以下:
var str1:String = "Hello"
var str2:String = "你好吗" count(str1)
count(str2)
输出结果例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。
github主页:https://github.com/chenyufeng1991 。欢迎大家訪问!
Swift学习笔记(十四)——字符,常量字符串与变量字符串的更多相关文章
- Swift学习笔记十四:构造(Initialization)
类和结构体在实例创建时,必须为全部存储型属性设置合适的初始值. 存储型属性的值不能处于一个未知的状态. 你能够在构造器中为存储型属性赋初值,也能够在定义属性时为其设置默认值.下面章节 ...
- Swift学习笔记十四
Deinitialization 当类的实例对象即将要被释放时,会立即调用deinitializer,通过deinit关键字来定义deinitializer,和initializer一样,它也只存在于 ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- (C/C++学习笔记) 十四. 动态分配
十四. 动态分配 ● C语言实现动态数组 C语言实现动态数组,克服静态数组大小固定的缺陷 C语言中,数组长度必须在创建数组时指定,并且只能是一个常数,不能是变量.一旦定义了一个数组,系统将为它分配一个 ...
- Swift学习笔记(二)——常量与变量
这篇博客将会学习到Swift中的常量Constants和变量Variable.这是学习语言的基础.当中能够看到Swift每句后面基本都是没有:分号的,假设有加:分号的习惯,也能够加上. (1)常量声明 ...
- Java基础学习笔记十四 常用API之基本类型包装类
基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们 ...
- Swift学习笔记十
枚举 一个枚举为一组相关联的值定义一个通用类型,并且让你可以在代码中类型安全地操作这些值. C中的枚举将关联的名字指派给一系列整型值.Swift中的枚举类型更为活泼,并不需要为每个成员指定值,如果指定 ...
- Swift学习笔记十六:协议
Protocol(协议)用于统一方法和属性的名称,而不实现不论什么功能. 协议可以被类.枚举.结构体实现.满足协议要求的类,枚举,结构体被称为协议的遵循者. 遵循者须要提供协议指定的成员,如属性,方法 ...
- Swift 学习笔记(四)
116.使用可选链式调用代替强制展开 通过在想调用的属性.方法.或下标的可选值(optional value)后面放一个问号(?),可以定义一个可选链.这一点很像在可选值后面放一个叹号(!)来强制展开 ...
- python 学习笔记十四 jQuery案例详解(进阶篇)
1.选择器和筛选器 案例1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
随机推荐
- Laravel Eloquent 数据查询结果中日期的格式化
两种情况: 使用 Model 的查询 例如: $item = App\Models\Apple::first(); $date = $item->created_at->format('Y ...
- python 全栈开发,Day22(封装,property,classmethod,staticmethod)
一.封装 封装 : 广义上的 :把一堆东西装在一个容器里 狭义上的 :会对一种现象起一个专门属于它的名字 函数和属性装到了一个非全局的命名空间 —— 封装 隐藏对象的属性和实现细节,仅对外提供公共访问 ...
- linux常用软件安装,常用命令
jdk [root@localhost]# tar -zxvf jdk-8u144-linux-x64.tar.gz [root@localhost]# vi /etc/profile 在profil ...
- 一.hadoop入门须知
目录: 1.hadoop入门须知 2.hadoop环境搭建 3.hadoop mapreduce之WordCount例子 4.idea本地调试hadoop程序 5.hadoop 从mysql中读取数据 ...
- POJ2065 SETI 高斯消元
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ2065 题意概括 多组数据,首先输入一个T表示数据组数,然后,每次输入一个质数,表示模数,然后,给出一 ...
- 动态产生DataSource------待整理
1. https://www.cnblogs.com/wsss/p/5475057.html https://www.cnblogs.com/jiligalaer/p/5418874.html htt ...
- 【转】TCP三次握手和四次挥手全过程及为什么要三次握手解答
TCP三次握手和四次挥手的全过程 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种表示: SYN(synchronous建立连接) ...
- poj 1703 - Find them, Catch them【带权并查集】
<题目链接> 题目大意: 已知所有元素要么属于第一个集合,要么属于第二个集合,给出两种操作.第一种是D a b,表示a,b两个元素不在一个集合里面.第二种操作是A a b,表示询问a,b两 ...
- go语言学习-数组-切片-map
数组 go语言中数组的特点: 数组的长度是固定的,并且长度也是数组类型的一部分 是值类型,在赋值或者作为参数传递时,会复制整个数组,而不是指针 定义数组的语法: var arr1 = [5]int{1 ...
- IBM NOTES
归档含义 邮件容量超过指定的邮件服务器的容量时,会受到警告信息.选择 Archive-Settings 可以设置邮件备份的规则,把邮箱里的部分邮件转移到本地的另一个指定文件夹(如 图 4).当您需要做 ...