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字符串版本更新特性相关推荐

  1. Swift之字符串String的常规操作和处理

    ① Swift 字符串创建 // 类型推断 let str = "Hello" // 指定不可修改类型 let str1 : String = "Hello" ...

  2. swift c语言 字符串的长度,Swift之字符串(String)

    学习一门新语言怎么能少的了字符串呢.Swift中的String和Objective-C语言中NSString还是区别不小的,Swift中的String又回归了正常状态,使用起来更为方便快捷.本篇博客的 ...

  3. Swift 获得字符串String长度

    在Objective-C中我们通常使用length来获取NSString类型的字符串的长度,而在Swift中,String结构体没有了这个方法,那怎样获取String类型的字符串的长度呢?我们可以通过 ...

  4. [译] Swift 5.0 新特性

    原文地址:What's new in Swift 5.0 原文作者:Paul Hudson 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:iWeslie ...

  5. [译] Swift 中的动态特性

    原文地址:Dynamic Features in Swift 原文作者:Mike Finney 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:iWesli ...

  6. swift中字符串截取方法(substring)

    下面介绍2种swift的字符串截取方法,实际上用到了substringFromIndex,substringToIndex,substringWithRange 1.将String转化为NSStrin ...

  7. swift String

    初始化空字符串 为了构造一个很长的字符串,可以创建一个空字符串作为初始值.可以将空的字符串字面量赋值给变量,也可以初始化一个新的String 实例: var emptyString = "& ...

  8. JVM学习笔记之-StringTable String的基本特性,内存分配,基本操作,拼接操作,intern()的使用,垃圾回收 ,G1中的String去重操作

    String的基本特性 string:字符串,使用一对""引起来表示. String s1 = ""; //字面量的定义方式 String s2 = new S ...

  9. thinking-in-java(13) String字符串

     [13.1]不可变String 1)String对象是不可变的,具有只读特性: [荔枝-String对象是不可变的]  public class Immutable {public static S ...

最新文章

  1. linux 系统工程师 面试 开放式问答
  2. Spring3注解@Component、@Repository、@Service、@Controller区别
  3. 苹果通知推送服务(APNS)关键特性摘要
  4. 【对讲机的那点事】Tx/Rx系统中的非线性失真
  5. 如何在markdown(csdn)中打出某个字符上面的三角帽子符号
  6. shell脚本中的日期处理
  7. 待解决的问题 POJ 3225 Help with Intervals 线段树 码力
  8. 云计算的核心技术有哪些?
  9. 汇编语言下载安装及使用(hello world,仅供学习参考)
  10. Java | ProGuard——java代码混淆利器
  11. RINEX3.05格式中的主要更新
  12. 基本知识 100040
  13. 的有效性最好_李如密:如何提升课堂教学的有效性?
  14. U8常用的二次开发方式
  15. cydia无法安装卸载插件_简单 用文件管理器干掉Cydia顽固插件源
  16. 5个免费 UI、界面设计素材网
  17. 解一元二次方程——Java
  18. 去掉图片水印方法 小技巧
  19. 深信服——字符串模糊匹配
  20. 4种方法实现文字竖向排列

热门文章

  1. jquery之行自加自减
  2. SQL Server 2008 R2 安全性专题(一):安全原则
  3. jquery.form 和MVC4做无刷新上传DEMO
  4. @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别...
  5. HTTP协议中Content-Length的详细解读。
  6. file invalid or corrupt. -vs2010
  7. USB HID report descriptor
  8. [4月21日]《51CTO 编辑部的外传》——剧本篇(上)
  9. [codeforces 339]D. Xenia and Bit Operations
  10. iosanimationWithKeyPath