kotlin 中的字符串

一、字符类访问

1、字符串的访问跟js一样,可以使用索引来访问或者直接循环。
Kotlin 复制代码
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 对象来返回结果,而保持原始字符串不变。
Kotlin 复制代码
fun main() {
    val a: String = "abcd"
    val b: String = a.uppercase() // 转大写
    println(a) // abcd
    println(b) // ABCD
}

三、多行字符串

1、多行字符串以 """开始,"""结束,里边可以换行及包含任意文本。
Kotlin 复制代码
// trimIndent 去掉每一行开头空白,同时也会移除尾部的换行符
fun main() {
    val a: String = """
        for (i in 1..10) {
            println(i)
        }
    """.trimIndent()
    println(a)
}

四、字符串模板

1、以开头,变量 或者 ${变量}

Kotlin 复制代码
fun main() {
    val a: String = "1"
    println("a的值:${a}") // a的值:1
    // 或
    println("a的值:$a") // a的值:1
}
2、也可以在多行字符串中使用
Kotlin 复制代码
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:

Kotlin 复制代码
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 是另一个占位符,用于整数值。
· nameage 分别是提供给这两个占位符的实际值。

代码示例2:

指定宽度和对齐

Kotlin 复制代码
fun main() {
    val score = 95.5
    val f = String.format("score: %10.4f", score)
    println(f) // score:    95.5000
}

解释:
· %10.4f 表示总共占10个字符宽,其中小数点后保留两位。不足部分前面用空格填充,实现右对齐。

相关推荐
EXI-小洲1 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_961901702 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..3 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
QQ_21696290963 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
前端 贾公子4 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
2601_962203514 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理5 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
roman_日积跬步-终至千里5 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
落魄大学生之流水线上谋生计5 小时前
LangGraph 基本用法指南
java·windows·python·langchain
2601_962128416 小时前
SpringBoot篇(缓存层)
java·spring boot·缓存