首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换字符串的前两个逗号

替换字符串的前两个逗号
EN

Stack Overflow用户
提问于 2014-09-18 11:10:17
回答 5查看 355关注 0票数 1

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

我之所以需要这样做,是因为我正在使用RDF三元组,在这里我需要分别处理主题、谓词和对象。因此,我使用String.split()方法将它们分成三个单独的部分。

这是我需要拆分的String的一个例子:

[马森http://www.w3.org/2000/01/rdf-schema#comment ],汤姆·马森(生于1952年8月14日)是挪威喜剧演员、演员、编剧和音乐家。他通常负责低音、吉他和声乐。1976年至1983年,他与扬·泰根和希罗德斯·法尔斯克一起加入了喜剧团体普里玛·维拉。后来,他继续在许多电视/现场节目和唱片上与赫罗德斯·法尔斯克合作。“@en]

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

[马森$ http://www.w3.org/2000/01/rdf-schema#comment$“汤姆·马森(生于1952年8月14日)是一名挪威喜剧演员、演员、编剧和音乐家。他通常处理低音、吉他和声乐。1976年至1983年,他和扬·泰根( Jahn Teigen )和希罗德斯·法尔斯克( Herodes Falsk )一起在喜剧集团普里玛·维拉( Prima Vera )工作。后来,他继续与赫罗德斯·法尔斯克( Herodes Falsk )合作制作许多电视/现场节目和唱片。”

我是以一种不那么优雅的方式做的:

代码语言:javascript
复制
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();
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-09-18 11:13:24

像这样的东西是相对直接的吗?

代码语言:javascript
复制
String s = input.replaceFirst(",", "x").replaceFirst(",", "x");
票数 6
EN

Stack Overflow用户

发布于 2014-09-18 11:13:10

使用两次replaceFirst。这能做你想做的事。如果要在第一次n时替换特定的字符,请使用for循环。

代码语言:javascript
复制
    String s = "this, is, a, Test";
    int count = 2;
    for(int i = 0; i < count; i++)
        s = s.replaceFirst(",", "");
    System.out.println(s);

输出:this is a, Test

或者,如果您总是希望只替换前两个字符,则可以链接这些方法。

代码语言:javascript
复制
   String s = "this, is, a, Test";
   s = s.replaceFirst(",", "$").replaceFirst(",", "$");
票数 3
EN

Stack Overflow用户

发布于 2014-09-18 11:13:57

如果只想替换逗号,可以调用replaceFirst 2次。例如:

代码语言:javascript
复制
    String someString = "a, b, c, d";
    someString = someString.replaceFirst(",", "-");
    someString = someString.replaceFirst(",", "-");

    System.out.println(someString);

产出如下:

代码语言:javascript
复制
    a- b- c, d
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25911090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档