You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中为String类型重载'-'运算符?

在Kotlin中为String重载'-'运算符移除指定字符

要实现这个需求其实很简单,核心是用扩展函数配合Kotlin的运算符重载机制,步骤如下:

  1. 定义重载'-'的扩展函数
    Kotlin里运算符重载需要用operator关键字,而'-'对应的函数名是minus。因为String是系统类,我们没法直接修改它的源码,所以用扩展函数给String新增这个能力:
operator fun String.minus(targetChar: Char): String {
    // 过滤掉所有等于targetChar的字符,返回新字符串
    return this.filter { it != targetChar }
}
  1. 测试使用
    写完函数后直接像普通运算符一样用就行:
fun main() {
    val original = "Hello World"
    val result = original - 'l'
    println(result) // 输出:Heo Word
}

关键知识点解释

  • operator关键字:必须加,用来标记这个函数是运算符重载函数,让Kotlin识别它对应'-'操作
  • filter函数:Kotlin字符串的内置函数,会遍历每个字符,只保留满足it != targetChar条件的字符,返回一个新的String(原字符串不会被修改,符合Kotlin不可变优先的设计)
  • 扩展函数:不用修改String类的源码,就能给它新增方法,非常适合这种给系统类加功能的场景

内容的提问来源于stack exchange,提问作者Paul Schmiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:20:55