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

Kotlin中Slice方法参数不匹配问题求助(保留现有代码)

Kotlin字符串截取错误修复(保留原代码结构)

错误原因

Kotlin的String.slice()方法要求传入IntRange(范围对象),而非两个独立的整数参数,这和JavaScript的slice行为差异直接导致了类型不匹配错误。

针对性修改(尽量保留原代码逻辑)

  1. 修正字符串截取方式:将s.slice(i, j)替换为s.slice(i until j),until会创建左闭右开的范围,和JS中slice的索引逻辑完全一致;也可以改用s.substring(i, j),两者效果相同。
  2. 修复回文判断逻辑:原代码用split("")拆分字符串会生成包含首尾空字符串的数组,反转拼接后会出现错误结果,改用字符数组操作更高效准确。
  3. 调整循环范围:原循环i in 0..s.length会让i取到超出字符串索引上限的值,改为0 until s.length;j的范围调整为i+1..s.length,避免生成无效空串。
  4. 规范语法细节:用val声明无需修改的变量,用==判断字符串内容相等(Kotlin中===是引用相等)。

修改后的完整代码

internal class blah {
    fun longestPalindrome(s: String): String {
        var longestP = ""
        for (i in 0 until s.length) {
            for (j in i+1..s.length) {
                val subS = s.slice(i until j)
                val reversedSub = subS.toCharArray().reversedArray().concatToString()
                if (subS == reversedSub && subS.length > longestP.length) {
                    longestP = subS
                }
            }
        }
        return longestP
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 21:01:40