| 知乎专栏 |
目录
fun main() {
val builder = StringBuilder()
builder.append("你好")
.append(",")
.append("世界")
.append("!")
val message = builder.toString()
println(message) // 输出:你好,世界!
}
// 语法:字符串.split(Regex)
val str = "a,b;c d"
val parts = str.split(Regex("[,;\\s]")) // 用逗号、分号或空格拆分
println(parts) // 输出:[a, b, c, d]
// 按多个字符拆分(如逗号、分号、空格)
val text = "apple,banana;orange grape"
// 正则含义:匹配逗号、分号或空格
val regex = Regex("[,;\\s]")
val fruits = text.split(regex)
// 结果:[apple, banana, orange, grape]
// 按数字拆分
val str = "abc123def456ghi"
// 正则含义:匹配一个或多个数字
val parts = str.split(Regex("\\d+"))
// 结果:[abc, def, ghi]
// 按单词边界拆分
val sentence = "Hello!World?Kotlin"
// 正则含义:匹配非字母字符(作为分隔符)
val words = sentence.split(Regex("[^a-zA-Z]"))
// 结果:[Hello, World, Kotlin]
// 限制拆分次数
val str = "a,b,c,d"
// 最多拆分成2部分(第二个参数为 limit)
val parts = str.split(Regex(","), 2)
// 结果:[a, b,c,d]
// 保留空字符串(默认会过滤)
val str = "a,,b,,c"
// 加上 -1 表示不限制拆分次数,且保留空字符串
val parts = str.split(Regex(","), -1)
// 结果:[a, , b, , c]
val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val formattedDate = dateFormat.format(Date())
val PATTERN: MutableList<String> = object : ArrayList<String>() {
init {
add(".*(?:发言|说话)人(\\d+).*")
add(".*(?:发言|说话)人(一|二|三|四|五|六|七|八|九|十).*")
add(".*(?:发言|说话)人(一|二|三|四|五|六|七|八|九|十).*")
// add("(.*)的观点.*");
}
}
val arrayList = ArrayList<String>()
arrayList.add("Java")
arrayList.add("Kotlin")
arrayList.add("Python")
println("ArrayList: $arrayList")
val contact =
mapOf(
"BG7NYT" to "177",
"BG7NEG" to "172",
"BG7JWV" to "179",
"BI7XYS" to "190",
"BD7KBF" to "4612194"
)
contact.values.toTypedArray()
// 创建可变列表集合
var mutableList = mutableListOf("Tom", "Jerry")
// 添加元素
mutableList.add("Jack")
// 删除元素
mutableList.remove("Tom")
println(mutableList)
// 将 可变列表集合 转为 只读列表集合
val list: List<String> = mutableList.toList()
// 将 只读列表集合 转为 可变列表集合
val mutable: MutableList<String> = list.toMutableList()
筛选并删除元素
fun main() {
// 创建可变列表集合
val mutableList = mutableListOf("Tom", "Jerry")
// 通过 Lambda 表达式筛选要操作的元素
// 删除包含 字母 T 的元素
mutableList.removeIf {
it.contains("T")
}
println(mutableList)
}
var content = meetingDao.findByTaskId(meetingData.taskId).forEach { (id, taskId, time, speaker, sentence) ->
Log.d(TAG, sentence)
}
val digit: MutableMap<String?, String?> = object : HashMap<String?, String?>() {
init {
put("一", "1")
put("二", "2")
put("三", "3")
put("四", "4")
put("五", "5")
put("六", "6")
put("七", "7")
put("八", "8")
put("九", "9")
put("十", "10")
put("零", "0")
}
}
// 方式1:显式指定泛型类型
val emptyMutableMap: MutableMap<String, Int> = mutableMapOf()
// 方式2:使用 HashMap 构造函数(Java 兼容方式)
val emptyHashMap = HashMap<String, Int>()
// 可变空 Map 的使用示例
fun main() {
// 向可变空 Map 中添加元素
emptyMutableMap["one"] = 1
emptyMutableMap["two"] = 2
emptyHashMap["three"] = 3
println(emptyMutableMap) // 输出:{one=1, two=2}
println(emptyHashMap) // 输出:{three=3}
}
fun main() {
// 创建并初始化可变 Map
val mutableMap = mutableMapOf(
"name" to "Alice",
"age" to 25,
"city" to "Beijing"
)
// 1. 添加键值对(若键已存在则覆盖)
mutableMap["gender"] = "Female" // 用 [] 运算符
mutableMap.put("job", "Engineer") // 用 put() 方法
println("添加后: $mutableMap")
// 2. 修改值
mutableMap["age"] = 26 // 直接赋值覆盖
mutableMap.replace("city", "Shanghai") // 用 replace() 方法
println("修改后: $mutableMap")
// 3. 删除键值对
mutableMap.remove("job") // 按键删除
println("删除后: $mutableMap")
// 4. 清空 Map
// mutableMap.clear()
// 5. 检查是否包含键/值
val hasName = mutableMap.containsKey("name")
val hasAge30 = mutableMap.containsValue(30)
println("包含 name 键: $hasName,包含 30 值: $hasAge30")
// 6. 遍历 Map
println("\n遍历键值对:")
for ((key, value) in mutableMap) {
println("$key: $value")
}
// 7. 转换为不可变 Map
val immutableMap: Map<String, Any> = mutableMap.toMap()
}
val originalMap = mapOf("a" to 1, "b" to 2, "c" to 2)
// 反转键值对(注意:如果值有重复,会导致键冲突,后面的键会覆盖前面的)
val reversedMap = originalMap.associateBy({ it.value }, { it.key })
println(reversedMap) // 输出: {1=a, 2=c}(值2对应的原键"b"被覆盖)
ConcurrentHashMap<String, String> speakers = new ConcurrentHashMap<>();
speakers.put("1", "发言人一");
speakers.put("2", "市场部小周");
speakers.put("4", "陈先生");
speakers.put("5", "齐天大圣");
speakers.put("6", "一品轩小飞");
speakers.put("7", "年年富");
speakers.put("8", "李总");
val invertedMap: Map<String, String> = speakers.entries.associateBy({ it.value as String }, { it.key as String })