java - 替换字符串的前两个逗号

标签 java regex string

是否有正则表达式可用于将字符串中的前两个逗号替换为另一个字符?

我需要这个的原因是我正在使用 RDF 三元组,我需要在其中分别处理主语、谓语和宾语。所以我使用 String.split() 方法将它们分成三个独立的部分。

这是我需要拆分的字符串示例:

[ http://dbpedia.org/resource/Tom_Mathisen , http://www.w3.org/2000/01/rdf-schema#comment , "Tom Mathisen(生于 1952 年 8 月 14 日)是挪威喜剧 Actor 、 Actor 、编剧和音乐家。他通常负责贝斯、吉他和声乐。1976 年至 1983 年,他与 Jahn Teigen 和 Herodes Falsk 一起在喜剧团体 Prima Vera 中。后来他继续与 Herodes Falsk 在许多电视/场景节目和唱片中合作。"@en]

例如,我希望这个字符串看起来像这样,所以我可以使用 $: 拆分

[ http://dbpedia.org/resource/Tom_Mathisen $ http://www.w3.org/2000/01/rdf-schema#comment $“Tom Mathisen(生于 1952 年 8 月 14 日)是一位挪威喜剧 Actor 、 Actor 、编剧和音乐家。他通常处理贝司、吉他和声乐。1976 年至 1983 年,他与 Jahn Teigen 和 Herodes Falsk 一起在喜剧团体 Prima Vera 中。后来他继续与 Herodes Falsk 在许多电视/场景节目和唱片中合作。"@en]

我用一种不太优雅的方式做到了:

StringBuilder stringbuilder = new StringBuilder(str);
int commaCounter = 0;
for (int i = 0; i < stringbuilder.length(); i++) {
    if (stringbuilder.charAt(i) == ',') {
        stringbuilder.setCharAt(i, '$');
        commaCounter++;
        if (commaCounter == 2) {
            break;
        }
    }
}
str = stringbuilder.toString();

最佳答案

这样的事情相对简单吗?

String s = input.replaceFirst(",", "x").replaceFirst(",", "x");

关于java - 替换字符串的前两个逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25911090/

相关文章:

用于解析存储过程和提取元数据的 C# 脚本

java - 在将列表转换为字符串时,在java中获得额外的[

r - 第二次匹配某个字符串后提取数字

java - 从文件中读取交替数据类型

java - java - 如何将节点附加到Java中的现有XML文件

java - 尝试打印 JAVA8 Collector 的结果时出现歧义错误

c# - 使用正则表达式将目标 ="_blank"列入白名单

python - 字符串python的重新/正则表达式模式

java - 从 android 字符串中删除空字符

java - 使用 Java 的硬盘总大小