一、字符类访问
1、字符串的访问跟js一样,可以使用索引来访问或者直接循环。
fun main() {
val a: String = "2024"
// 方式一:
for (item in a) {
println(item) // 输出每一个字符
}
// 方式二:
println("${a[0]}, ${a[1]}, ${a[2]}, ${a[3]}") // 2, 0, 2, 4
}
二、不可变性
1、字符串是不可变的。一旦初始化了一个字符串,就不能改变它的值或者给它赋新值。所有转换字符串的操作都会以一个新的String 对象来返回结果,而保持原始字符串不变。
fun main() {
val a: String = "abcd"
val b: String = a.uppercase() // 转大写
println(a) // abcd
println(b) // ABCD
}
三、多行字符串
1、多行字符串以 """开始,"""结束,里边可以换行及包含任意文本。
// trimIndent 去掉每一行开头空白,同时也会移除尾部的换行符
fun main() {
val a: String = """
for (i in 1..10) {
println(i)
}
""".trimIndent()
println(a)
}
四、字符串模板
1、以$开头,$变量 或者 ${变量}
fun main() {
val a: String = "1"
println("a的值:${a}") // a的值:1
// 或
println("a的值:$a") // a的值:1
}
2、也可以在多行字符串中使用
fun main() {
val a = "abc"
val b: String = """
${a.length}
""".trimIndent()
println("b:${b}") // b:3
}
五、字符串格式化
1、要按照特定需求格式化字符串,请使用 String.format()
函数。
String.format()
函数接受一个格式字符串和一个或多个参数。格式字符串中包含一个占位符(由 % 表示)用于给定的参数,后面跟着格式说明符。格式说明符是对相应参数的格式化指令,由标志、宽度、精度和转换类型组成。综合起来,格式说明符决定了输出格式的样式。常见的格式说明符包括 %d 用于整数,%f 用于浮点数,以及 %s 用于字符串。
总结:
String.format()
函数允许你使用特定的格式模式来创建格式化的字符串输出
代码示例1:
fun main() {
val name = "abc"
val age = 20
val str = String.format("name: %s, age: %d", name, age)
println(str) // name: abc, age: 20
}
解释:· %s
是一个占位符,表示字符串类型的值将被插入到这个位置。· %d
是另一个占位符,用于整数值。· name
和 age
分别是提供给这两个占位符的实际值。
代码示例2:
指定宽度和对齐
fun main() {
val score = 95.5
val f = String.format("score: %10.4f", score)
println(f) // score: 95.5000
}
解释:· %10.4f
表示总共占10个字符宽,其中小数点后保留两位。不足部分前面用空格填充,实现右对齐。