Kotlin核心编程》 ——2.5 字符串的定义和操作

网友投稿 547 2022-05-30

2.5 字符串的定义和操作

我们似乎破坏了一个传统。根据惯例,每本编程语言的技术书开头,似乎都会以打印一段“hello world!”的方式来宣告自己的到来。现在,我们决定秉承传统,来完成这一任务。当然,此举实际上不是为了宣扬某种仪式,而是因为本节的内容是关于Kotlin中又一项基础的语法知识,也就是字符串操作。

Kotlin中的字符串并没有什么与众不同,与Java一样,我们通过双引号来定义一个字符串,它是不可变的对象。

val str = "hello world!"

《Kotlin核心编程》 ——2.5 字符串的定义和操作

然后,我们可以对其进行各种熟悉的操作:

str.length // 12

str.substring(0,5) // hello

str + " hello Kotlin!" // hello world! hello Kotlin!

str.replace("world", "Kotlin") // hello Kotlin!

由于String是一个字符序列,所以我们可以对其进行遍历:

>>> for (i in str.toUpperCase()) { print(i) }

HELLO WORLD!

还可以访问这个字符序列的成员:

str[0] // h

str.first() // h

str.last() // !

str[str.length - 1] // !

此外,Kotlin的字符串还有各种丰富的API,如:

// 判断是否为空字符串

"".isEmpty() // true

" ".isEmpty() // false

" ".isBlank() // true

"abcdefg".filter { c -> c in 'a'..'d' } // abcd

更多字符串类方法可以查阅Kotlin API文档:https://kotlinlang.org/api/latest/jvm/stdlib/ kotlin/-string/index.html

2.5.1 定义原生字符串

Java在JEP 326改进计划中提议,增加原生字符串的语法支持,因为目前它只能通过转义字符的迂回办法来支持,非常麻烦。而在Kotlin中,已经支持了这种语法,我们来定义一个多行的原生字符串体验一下:

val rawString = """

\n Kotlin is awesome.

\n Kotlin is a better Java."""

>>> println(rawString)

\n Kotlin is awesome.

\n Kotlin is a better Java.

简而言之,用这种3个引号定义的字符串,最终的打印格式与在代码中所呈现的格式一致,而不会解释转化转义字符(正如上述例子中的\n),以及Unicode的转义字符(如\uXXXX)。

比如,我们用字符串来描述一段HTML代码,用普通字符串定义时必须是这样子:

val html = "\n" +

"    \n" +

"               

Hello World.

\n" +

"    \n" +

"\n"

采用原生字符串的格式,会非常方便。如下:

val html = """

Hello World.

"""

Kotlin 编程

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python命令行解析:sys.argv[]函数的简介、案例应用之详细攻略
下一篇:我们已经坐上高铁了,我们的用户还只能坐马车
相关文章