Swift String字符串版本更新特性
var str = "Hello, playground"
字符串,Swift最基本最常用的对象之一。
Swift的基本使用,增删改查我们就不说了。
基本字面量
let hello = "Hello Swift"
print("\(hello) 欢迎你")
多行字符串
let mutilStr = """
我是多行字符串
我这里定义多行
比如json定义
"""
Swift 5.0 String的新特性
增加Raw string 原始字符串功能。原始字符串中的引号和反斜杠会被原样输出.
比如我有这样一句话:"Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#字母,"Bob"帽子上有两个##字母
\
处理
使用\
来处理,也是大多数语言处理方式,但是如果用来处理正则表达式就难看的。
var showStr = "\"Tom\" 和 \"Bob\"今天来我家,\"Tom\"帽子上有一个#,\"Bob\"帽子上有两个##"
print(showStr) //"Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"Bob"帽子上有两个##
#
处理
使用成对#将字符串包裹起来
var str2 = #""Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"Bob"帽子上有两个##"#
print(str2)//"Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"Bob"帽子上有两个##
如果要插入变量值了? 使用\#()
var bob = "Bob"
var str2 = #""Tom" 和 "Bob"今天来我家,"Tom"帽子上有一个#,"\#(bob)"帽子上有两个##"#
##
处理
##
会完完全全原样输出字符串。
上面#
处理有可能遇到 #" 就会成问题
比如我要显示:你好"Tom"#Bob"
如果使用#"你好"Tom"#Bob"#
就会出问题,相当于提前终止了#
所以此时就应该用##
处理
var str3 = ##"你好"Tom"#Bob"##
print(str3) //你好"Tom"#Bob
你是不是在想,为啥不直接用
##
表示原样输出安全,我也这么想的,但是发现,##
不支持里面添加变量
不信,你看
var bob = "Bob"
var str3 = ##"你好"Tom"#\#(bob)"##
print(str3) //你好"Tom"#\#(bob)
所以,结论就是:
一般情况就是用
#
,即不用考虑转义字符,也可以\#(variable)
使用变量字面值
想想用这个来定义正在表达式就爽
多行字符串
原始字符串和多行字符串完全兼容。
var bob = "Bob"
var str4 = #"""
一行
两行
\#(bob)
"""#
var str5 = ##"""
一行
两行
不可使用变量
"""##
参考:
Swift5.0新特性更新
老司机周报
Swift String字符串版本更新特性相关推荐
- Swift之字符串String的常规操作和处理
① Swift 字符串创建 // 类型推断 let str = "Hello" // 指定不可修改类型 let str1 : String = "Hello" ...
- swift c语言 字符串的长度,Swift之字符串(String)
学习一门新语言怎么能少的了字符串呢.Swift中的String和Objective-C语言中NSString还是区别不小的,Swift中的String又回归了正常状态,使用起来更为方便快捷.本篇博客的 ...
- Swift 获得字符串String长度
在Objective-C中我们通常使用length来获取NSString类型的字符串的长度,而在Swift中,String结构体没有了这个方法,那怎样获取String类型的字符串的长度呢?我们可以通过 ...
- [译] Swift 5.0 新特性
原文地址:What's new in Swift 5.0 原文作者:Paul Hudson 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:iWeslie ...
- [译] Swift 中的动态特性
原文地址:Dynamic Features in Swift 原文作者:Mike Finney 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:iWesli ...
- swift中字符串截取方法(substring)
下面介绍2种swift的字符串截取方法,实际上用到了substringFromIndex,substringToIndex,substringWithRange 1.将String转化为NSStrin ...
- swift String
初始化空字符串 为了构造一个很长的字符串,可以创建一个空字符串作为初始值.可以将空的字符串字面量赋值给变量,也可以初始化一个新的String 实例: var emptyString = "& ...
- JVM学习笔记之-StringTable String的基本特性,内存分配,基本操作,拼接操作,intern()的使用,垃圾回收 ,G1中的String去重操作
String的基本特性 string:字符串,使用一对""引起来表示. String s1 = ""; //字面量的定义方式 String s2 = new S ...
- thinking-in-java(13) String字符串
[13.1]不可变String 1)String对象是不可变的,具有只读特性: [荔枝-String对象是不可变的] public class Immutable {public static S ...
最新文章
- linux 系统工程师 面试 开放式问答
- Spring3注解@Component、@Repository、@Service、@Controller区别
- 苹果通知推送服务(APNS)关键特性摘要
- 【对讲机的那点事】Tx/Rx系统中的非线性失真
- 如何在markdown(csdn)中打出某个字符上面的三角帽子符号
- shell脚本中的日期处理
- 待解决的问题 POJ 3225 Help with Intervals 线段树 码力
- 云计算的核心技术有哪些?
- 汇编语言下载安装及使用(hello world,仅供学习参考)
- Java | ProGuard——java代码混淆利器
- RINEX3.05格式中的主要更新
- 基本知识 100040
- 的有效性最好_李如密:如何提升课堂教学的有效性?
- U8常用的二次开发方式
- cydia无法安装卸载插件_简单 用文件管理器干掉Cydia顽固插件源
- 5个免费 UI、界面设计素材网
- 解一元二次方程——Java
- 去掉图片水印方法 小技巧
- 深信服——字符串模糊匹配
- 4种方法实现文字竖向排列
热门文章
- jquery之行自加自减
- SQL Server 2008 R2 安全性专题(一):安全原则
- jquery.form 和MVC4做无刷新上传DEMO
- @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别...
- HTTP协议中Content-Length的详细解读。
- file invalid or corrupt. -vs2010
- USB HID report descriptor
- [4月21日]《51CTO 编辑部的外传》——剧本篇(上)
- [codeforces 339]D. Xenia and Bit Operations
- iosanimationWithKeyPath