Kotlin 字元串教程:深入理解與使用技巧

来源:https://www.cnblogs.com/xiaowange/p/18338998
-Advertisement-
Play Games

Kotlin中的字元串用於存儲文本,定義時使用雙引號包圍字元序列,如`var greeting = "Hello"`。Kotlin能自動推斷變數類型,但在未初始化時需顯式指定類型,如`var name: String`。可通過索引訪問字元串元素,如`txt[0]`獲取首字元。字元串作為對象,擁有屬性... ...


Kotlin 字元串

字元串用於存儲文本。

字元串包含由雙引號包圍的字元集合:

示例

var greeting = "Hello"

Java 不同,您不必指定變數是字元串。Kotlin 足夠智能,可以通過雙引號理解上例中的 greeting 變數是字元串。

然而,與其他數據類型一樣,如果您堅持,可以指定類型:

示例

var greeting: String = "Hello"

註意:如果您想創建一個字元串但不賦值(並稍後賦值),您必須在聲明變數時指定類型:

示例

這樣是可以的:

var name: String
name = "John"
println(name)

示例

這樣會產生錯誤:

var name
name = "John"
println(name)

訪問字元串

要訪問字元串的字元(元素),必須在方括弧內引用索引號。

字元串索引從 0 開始。在下麵的示例中,我們訪問 txt 中的第一個和第三個元素:

示例

var txt = "Hello World"
println(txt[0]) // 第一個元素 (H)
println(txt[2]) // 第三個元素 (l)

[0] 是第一個元素,[1] 是第二個元素,[2] 是第三個元素,等等。

字元串長度

Kotlin 中的字元串是對象,包含可以對字元串執行某些操作的屬性和函數,通過在特定字元串變數後寫一個點字元(.)。例如,可以使用 length 屬性找到字元串的長度:

示例

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
println("txt 字元串的長度是: " + txt.length)

字元串函數

有許多可用的字元串函數,例如 toUpperCase()toLowerCase()

示例

var txt = "Hello World"
println(txt.toUpperCase())   // 輸出 "HELLO WORLD"
println(txt.toLowerCase())   // 輸出 "hello world"

比較字元串

compareTo(string) 函數比較兩個字元串,如果兩者相等則返回 0

示例

var txt1 = "Hello World"
var txt2 = "Hello World"
println(txt1.compareTo(txt2))  // 輸出 0 (它們相等)

查找字元串中的字元串

indexOf() 函數返回指定文本在字元串中首次出現的位置(包括空格):

示例

var txt = "Please locate where 'locate' occurs!"
println(txt.indexOf("locate"))  // 輸出 7

記住,Kotlin 從零開始計數。

0 是字元串中的第一個位置,1 是第二個,2 是第三個……

字元串中的引號

要在字元串中使用引號,使用單引號('):

示例

var txt1 = "It's alright"
var txt2 = "That's great"

字元串連接

可以在字元串之間使用 + 運算符將它們添加在一起,形成一個新的字元串。這稱為連接:

示例

var firstName = "John"
var lastName = "Doe"
println(firstName + " " + lastName)

請註意,我們添加了一個空文本(" ")以在列印時在 firstNamelastName 之間創建一個空格。

您還可以使用 plus() 函數連接兩個字元串:

示例

var firstName = "John "
var lastName = "Doe"
println(firstName.plus(lastName))

字元串模板/插值

除了連接,您還可以使用“字元串模板”,這是一種在字元串中添加變數和表達式的簡單方法。

只需使用 $ 符號引用變數:

示例

var firstName = "John"
var lastName = "Doe"
println("My name is $firstName $lastName")

“字元串模板”是 Kotlin 的一個流行特性,因為它減少了代碼量。例如,您不必像在連接示例中那樣在 firstNamelastName 之間指定空格。

最後

為了方便其他設備和平臺的小伙伴觀看往期文章:

微信公眾號搜索:Let us Coding,關註後即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關註


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這次向大家分享一篇流圖處理系統論文GraphBolt,看如何基於計算曆史的方式實現增量圖計算,並保證與全量圖計算語義的一致性。 ...
  • 寫在前面 今天繼續前面的20題之後的練習,數據都是一樣的,可以直接使用,來看看你的sql功底降了沒。 基礎20題 #1.查詢每個員⼯的姓名、郵箱、職位名稱以及所在部⻔名稱。 SELECT CONCAT(last_name,first_name) as 姓名, email, job_title, de ...
  • 這次向大家分享Microsoft發表在SOSP'13的另一篇關於流處理系統論文Naiad,TimelyDataflow是它的開源實現。該論文促進了後續的流圖系統的設計與創新,從其調度框架設計中也可以看到TuGraph Analytics調度器的影子。 ...
  • EasyMR 作為袋鼠雲基於雲原生技術和 Hadoop、Hive、Spark、Flink、Hbase、Presto 等開源大數據組件構建的彈性計算引擎。此前,我們已就其展開了多方位、多角度的詳盡介紹。而此次,我們成功接入了大數據組件的升級和回滾功能,能夠藉助 EasyMR 來掌控大數據組件的升級與回 ...
  • 這次向大家分享發表在SOSP 2013上的另一篇經典圖計算框架論文X-Stream,構建了單機上基於外存的Scatter-Gather圖處理框架。 ...
  • 我們非常激動地宣佈,詞雲圖大師(WordCloudMaster)現已正式上線Web端!這一全新版本為用戶帶來了更多的便捷和功能,讓創建和分享詞雲變得更加輕鬆。無論是企業、教育機構還是個人用戶,都可以通過Web端實現快速生成和定製屬於自己的詞雲圖。 https://studio.wordcloudma ...
  • Kotlin中的布爾值是一種數據類型,僅能存儲`true`或`false`兩種狀態,適用於表示二選一的情況,如開關或真假判斷。布爾類型可通過`Boolean`關鍵字聲明,並直接賦值為`true`或`false`。此外,Kotlin支持使用比較運算符創建布爾表達式,用於條件判斷。條件語句包括`if`、... ...
  • ​一年一度的畢業季就要到了,畢業設計算是大學生畢業前的最後一個大作業,尤其是電腦相關專業的畢業設計,通常要通過編程開發一個軟體,比如開發一個圖書館管理系統,開發一個電商APP等等。 一個好的畢業設計可以給作者加分,可以評優,還能獲得編程開發的實戰經驗,所以很有必要認真去做畢業設計。那麼就電腦相關 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...