gpt4 book ai didi

java - 删除字符串中的最后一次出现

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:33 26 4
gpt4 key购买 nike

我正在尝试将字符串修剪为单个逗号分隔单词字符串中特定单词的第一次出现。例如:

deleteLastOccurrence("foo,bar,dog,cat,dog,bird","dog")

应该返回

"foo,bar,dog"

我有以下内容,但它似乎无法正常工作:

public String deleteLastOccurrence(String original, String target){
String[] arr = original.split(",");
arr = Arrays.copyOfRange(arr, Arrays.asList(arr).indexOf(target), original.length()-1);
path = StringUtils.join(pathArray,",");
}

对更简单的方法有什么建议吗?提前致谢...

最佳答案

使用正则表达式替换:

public static String deleteLastOccurrence(String original, String target){
return original.replaceAll("(,)?\\b" + target + "\\b.*", "$1" + target);
}

当目标是原始单词的第一个或最后一个单词时,此代码也有效(因此正则表达式语法 \b 表示“单词边界”)

此外,将您的方法重命名为 deleteAfterFirstOccurrence(),因为您当前的名称具有误导性:“最后一次出现”与您想要的无关。

这里有一个小测试:

public static void main(String[] args) {
// Test for target in middle:
System.out.println(deleteLastOccurrence("foo,bar,dog,cat,dog,bird,dog", "dog"));
// Test for target at start:
System.out.println(deleteLastOccurrence("dog,bar,dog,cat,dog,bird,dog", "dog"));
// Test for target at end:
System.out.println(deleteLastOccurrence("foo,bar,cat,bird,dog", "dog"));
}

输出:

foo,bar,dog
dog
foo,bar,cat,bird,dog

关于java - 删除字符串中的最后一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com