Kotlin核心編程》 ——2.5 字符串的定義和操作

      網(wǎng)友投稿 703 2025-03-31

      2.5 字符串的定義和操作

      我們似乎破壞了一個(gè)傳統(tǒng)。根據(jù)慣例,每本編程語(yǔ)言的技術(shù)書(shū)開(kāi)頭,似乎都會(huì)以打印一段“hello world!”的方式來(lái)宣告自己的到來(lái)。現(xiàn)在,我們決定秉承傳統(tǒng),來(lái)完成這一任務(wù)。當(dāng)然,此舉實(shí)際上不是為了宣揚(yáng)某種儀式,而是因?yàn)楸竟?jié)的內(nèi)容是關(guān)于Kotlin中又一項(xiàng)基礎(chǔ)的語(yǔ)法知識(shí),也就是字符串操作。

      Kotlin中的字符串并沒(méi)有什么與眾不同,與Java一樣,我們通過(guò)雙引號(hào)來(lái)定義一個(gè)字符串,它是不可變的對(duì)象。

      val str = "hello world!"

      然后,我們可以對(duì)其進(jìn)行各種熟悉的操作:

      str.length // 12

      str.substring(0,5) // hello

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

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

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

      由于String是一個(gè)字符序列,所以我們可以對(duì)其進(jìn)行遍歷:

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

      HELLO WORLD!

      還可以訪問(wèn)這個(gè)字符序列的成員:

      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改進(jìn)計(jì)劃中提議,增加原生字符串的語(yǔ)法支持,因?yàn)槟壳八荒芡ㄟ^(guò)轉(zhuǎn)義字符的迂回辦法來(lái)支持,非常麻煩。而在Kotlin中,已經(jīng)支持了這種語(yǔ)法,我們來(lái)定義一個(gè)多行的原生字符串體驗(yàn)一下:

      val rawString = """

      \n Kotlin is awesome.

      \n Kotlin is a better Java."""

      >>> println(rawString)

      \n Kotlin is awesome.

      \n Kotlin is a better Java.

      簡(jiǎn)而言之,用這種3個(gè)引號(hào)定義的字符串,最終的打印格式與在代碼中所呈現(xiàn)的格式一致,而不會(huì)解釋轉(zhuǎn)化轉(zhuǎn)義字符(正如上述例子中的\n),以及Unicode的轉(zhuǎn)義字符(如\uXXXX)。

      比如,我們用字符串來(lái)描述一段HTML代碼,用普通字符串定義時(shí)必須是這樣子:

      val html = "\n" +

      "??? \n" +

      "???????????????

      Hello World.

      \n" +

      "??? \n" +

      "\n"

      采用原生字符串的格式,會(huì)非常方便。如下:

      val html = """

      Hello World.

      """

      Kotlin 編程

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:IF函數(shù)嵌套,看完這篇也簡(jiǎn)單
      下一篇:excel分頁(yè)線怎么增加(excel怎樣調(diào)整分頁(yè)線)
      相關(guān)文章
      久久精品国产99国产精品亚洲 | 中文日韩亚洲欧美制服| 久久久久久久综合日本亚洲| 中文字幕精品亚洲无线码一区应用| 精品国产亚洲AV麻豆| 亚洲av成人中文无码专区| 亚洲一卡2卡3卡4卡5卡6卡| 久久综合久久综合亚洲| 亚洲综合色7777情网站777| 图图资源网亚洲综合网站| 亚洲AV福利天堂一区二区三| 亚洲国产精品免费视频| 久久亚洲AV午夜福利精品一区| 亚洲av午夜成人片精品网站| 亚洲gv猛男gv无码男同短文| 久久亚洲AV无码精品色午夜麻| 久久久婷婷五月亚洲97号色 | 国产AV无码专区亚洲AV蜜芽| 老牛精品亚洲成av人片| www.91亚洲| 国产亚洲精品精品国产亚洲综合| 国产AV无码专区亚洲AV漫画| 亚洲精品无码久久千人斩| 亚洲av福利无码无一区二区| 婷婷亚洲久悠悠色悠在线播放 | 亚洲精品无码中文久久字幕| 日韩国产欧美亚洲v片| 亚洲AV成人精品日韩一区18p| 亚洲国模精品一区| 亚洲中文字幕无码爆乳AV| 亚洲成AV人片在| 亚洲福利视频一区二区三区| 久久精品国产亚洲AV久 | 亚洲av无码专区在线播放| 久久精品国产69国产精品亚洲| 日本久久久久亚洲中字幕| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲精品无码你懂的| 亚洲精品无码久久毛片| 国产亚洲免费的视频看| 91在线精品亚洲一区二区|