Kotlin 字符串

Kotlin 字符串

字符串用于存储文本。

字符串包含用双引号括起来的字符集合:

实例

var greeting = "Hello"

亲自试一试

Java 不同,您不需要指定变量应该是 String 类型。由于双引号的存在,Kotlin 足够智能,可以理解上面示例中的 greeting 变量是一个字符串。

但是,就像其他数据类型一样,如果您坚持的话,可以指定类型:

实例

var greeting: String = "Hello"

亲自试一试

注意:如果要创建一个 String 而不赋值(稍后赋值),则必须在声明变量时指定类型:

实例

这样可以正常工作:

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

亲自试一试

实例

这将生成错误:

var name
name = "Bill"
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("The length of the txt string is: " + 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 = "Bill"
var lastName = "Gates"
println(firstName + " " + lastName)

亲自试一试

提示:请注意,我们添加了一个空文本 (" "),以便在打印时在 firstNamelastName 之间创建一个空格。

您还可以使用 plus() 函数连接两个字符串:

实例

var firstName = "Bill "
var lastName = "Gates"
println(firstName.plus(lastName))

亲自试一试

字符串模板/插值

除了连接之外,您还可以使用“字符串模板”,这是一种在字符串内部添加变量和表达式的简单方法。

只需用 $ 符号引用变量即可:

实例

var firstName = "Bill"
var lastName = "Gates"
println("My name is $firstName $lastName")

亲自试一试

提示:“字符串模板”是 Kotlin 的一个流行功能,因为它减少了代码量。例如,您不必像我们在连接示例中那样在 firstNamelastName 之间指定一个空格。