Kotlin - 仅替换字符串中最后给定的字符串

Leo*_*ela 4 java kotlin

我想用另一个字符串替换字符串,但只替换最后找到的字符串。例如:

"ONE, TWO, THREE, FOUR".replaceLast(",", " &") // Outputs: "ONE, TWO, THREE & FOUR"
Run Code Online (Sandbox Code Playgroud)

小智 5

要仅替换 Kotlin 字符串中最后一次出现的子字符串,您可以使用扩展函数。下面是完成此任务的 Kotlin 扩展函数:

科特林:

fun String.replaceLast(oldValue: String, newValue: String): String {
    val lastIndex = lastIndexOf(oldValue)
    if (lastIndex == -1) {
        return this
    }
    val prefix = substring(0, lastIndex)
    val suffix = substring(lastIndex + oldValue.length)
    return "$prefix$newValue$suffix"
}

fun main() {
    val input = "ONE, TWO, THREE, FOUR"
    val result = input.replaceLast(",", " &")
    println(result) // Output: "ONE, TWO, THREE & FOUR"
}
Run Code Online (Sandbox Code Playgroud)

爪哇:

public class Main {
    public static String replaceLast(String input, String oldValue, String newValue) {
        int lastIndex = input.lastIndexOf(oldValue);
        if (lastIndex == -1) {
            return input;
        }
        String prefix = input.substring(0, lastIndex);
        String suffix = input.substring(lastIndex + oldValue.length());
        return prefix + newValue + suffix;
    }

    public static void main(String[] args) {
        String input = "ONE, TWO, THREE, FOUR";
        String result = replaceLast(input, ",", " &");
        System.out.println(result); // Output: "ONE, TWO, THREE & FOUR"
    }
}
Run Code Online (Sandbox Code Playgroud)