Swift基础——字符串简介

String简介

但凡接触过其他语言,我们不难发现,或者说我们应该都知道字符串(一系列字符集合)

那么下面我们正式开始: count :获取当前字符串的字符数量 \(参数):往字符串指定位置插入指定内容 类型强转:给字符串加() 提问:还记得怎么定义变量吗?不记得话赶紧回头看看哦~ hasSuffix:字符串尾部是否包含指定字符串 hasPrefix:字符串头部是否包含指定字符串 uppercased、lowercased、capitalized:大小写相关方法 isEmpty:判断是否为空 components:按指定内容分割并返回数组,类似Java中的split caseInsensitiveCompare:字符串比较不区分大小写 contains:是否包含 append、insert:添加插入 replaceSubrange需要先获得索引,他是针对索引区域替换 字符串替换

放松一下先来玩个其他的,认识一下循环后续会有详细介绍 提前见一下循环当然不是为了学习它,而是认识一下Xcode这个软件牛掰的地方 再次点击最开始的右侧小方块,隐藏循环结果就回去咯。。。

Raw String简介

首先我们知道String是什么,但是有时候会出现一些问题,比如“双引号”和“斜杠”问题,在定义字符串之后是在双引号里面,我们就需要用到转义符比如下面这样: 嗯。。。那么新问题来了,乍一眼看过去是不很难看明白,一堆斜杠,字符串结构就会很乱。。。怎么办? #:苹果提供了“#”,什么意思? 我们只需要在字符串前后两端添加#,就可以正常输出双引号了,比如下面这个: 等等,这好像又会导致一个新问题,如果我们需要在字符串引入外部变量怎么办?此时“(参数)”的方式就不能用了,那怎么办?不要慌我们在斜杠与参数之间再加一个#变成“#(参数)”例如下面这样: 嗯。。。根之前的斜杠问题一样,如果字符串也有#怎么办?这会让人分不清而产生分歧,嗯。。。只要在外面再加一层#就好了例如下面: 接下来我们有个不成文建议,加入字符串内容很多,有多行多段,为了保持字符串排版和布局,可以在头尾添加三个双引号比如下面:

下面是一些示例代码,可以参考一下:

import UIKit

var greeting = "Hello, playground"

//let常量var变量这个应该都知道吧

let hello = "hello";

let word = "word";

var str1 = hello + " " + word;

str1.count;

//循环演示

let name = "zxl";

var str2 = "My name is \(name)";

let str3 = "My name is \(name)";

for character in str1{

print(character);

}

var str6 = "123";

let str4 = "12345";

let str5 = "上山打老虎";

Int(str4);

Int(str5);

Int(str6);

var message = "I have a girlfriend";

//尾部包含

message.hasSuffix("girlfriend");

message.hasSuffix("a");

//头部包含

message.hasPrefix("I");

message.hasPrefix(" ");

//大小写转换

message.uppercased();

message.lowercased();

//首字母大写

message.capitalized;

//判空

message.isEmpty;

//指定分割返回数组

message.components(separatedBy: " ");

//字符串比较不区分大小写,此时message = "I Have A Girlfriend"

message.caseInsensitiveCompare("I Have A Girlfriend").rawValue;

message.caseInsensitiveCompare("I HaVe a girlfriend").rawValue;

//是否包含

message.contains("girlfriend");

//判断两个索引之间的距离

message.distance(from: message.startIndex, to: message.endIndex);

//获得字符串在指定编码下的字符长度

message.lengthOfBytes(using: .utf8);

//获得指定字符串在当前字符串中的范围(索引类型)

message.range(of: "a")?.lowerBound//范围起点

message.range(of: "a")?.upperBound//范围结束点

//中文字符串转拼音还带音调哦

"张鑫乐".applyingTransform(StringTransform.toLatin, reverse: false);

//添加

message.append(" !");

//指定位置插入

//尾插

message.insert(contentsOf: "! ", at: message.endIndex)

message.insert("!", at: message.endIndex)

//头插

message.insert(contentsOf: " ", at: message.startIndex)

message.insert(contentsOf: "Hi ", at: message.startIndex)

//替换

//开始位置向后2位

let start = message.index(message.startIndex , offsetBy: 6)

//结束为止向前

let end = message.index(message.endIndex , offsetBy: -18)

//划定索引区域

let range = start..

//替换索引区域

message.replaceSubrange(range, with: "do not have")

//获取字符串索引区域的内容

message[range]

//指定内容替换全部替换

message.replacingOccurrences(of: "do n", with: "n")

let string2 = "左:\"left\",右:\"right\""

let string3 = #"左:"left",右:"right""#

//这里定义一个结构体

struct Product

{

var brand : String;

}

let product = Product(brand: "apple");

let string4 = #"It is an \#(product.brand)"#;

let string5 = ##"It on the floor #4 ?"##

let string6 = """

Safari is packed with innovative features that give you more ways to enjoy the web.

Built-in privacy features help protect your personal information and keep your Mac safe.

Optimized start page that allows you to easily and quickly save,

find, and share your favorite sites.

Siri Suggestions will also show you links and other information you receive in the Messages app.

"""

print(string6);

私货彩蛋: 很多蘑菇类植物在白天不会发生作用,我的意思是,不合适的时间不合适的人,哪怕付出再多的阳光给他,也不过是在消耗自己,放手吧! ——《植物大战僵尸》

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: