当前位置: 首页 > 知识库问答 >
问题:

替换字符串的前两个逗号

慕容俭
2023-03-14

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

我之所以需要它,是因为我正在使用RDF三元组,其中我需要分别处理主语、谓语和宾语。所以我用绳子把它们分成三个部分。split()方法

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

[http://dbpedia.org/resource/Tom_Mathisen, http://www.w3.org/2000/01/rdf-schema#comment,“Tom Mathisen(生于1952年8月14日)是一名挪威喜剧演员、演员、编剧和音乐家。他通常处理贝司、吉他和声乐。1976年至1983年,他与Jahn Teigen和Herodes Falsk一起加入喜剧组Prima Vera。之后,他继续与Herodes Falsk合作制作许多电视/现场节目和唱片。”@[英文]

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

[http://dbpedia.org/resource/Tom_Mathisen$ http://www.w3.org/2000/01/rdf-schema#comment$“汤姆·马蒂森(生于1952年8月14日)是一名挪威喜剧演员、演员、编剧和音乐家。他通常负责贝司、吉他和声乐。1976年至1983年,他与扬·泰根和赫罗德斯·法尔斯克一起加入喜剧团Prima Vera。后来,他继续与赫罗德斯·法尔斯克合作制作许多电视/现场节目和唱片。”@[英文]

我用了一种不那么优雅的方式:

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();

共有3个答案

樊宏邈
2023-03-14

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

    String someString = "a, b, c, d";
    someString = someString.replaceFirst(",", "-");
    someString = someString.replaceFirst(",", "-");

    System.out.println(someString);

输出为:

    a- b- c, d
施越彬
2023-03-14

使用两次replaceFirst。这会满足你的要求。如果要在第一次n时替换特定字符,请使用forloop。

    String s = "this, is, a, Test";
    int count = 2;
    for(int i = 0; i < count; i++)
        s = s.replaceFirst(",", "");
    System.out.println(s);

输出:这是一个测试

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

   String s = "this, is, a, Test";
   s = s.replaceFirst(",", "$").replaceFirst(",", "$");
逄边浩
2023-03-14

像这样的事情相对简单?

String s = input.replaceFirst(",", "x").replaceFirst(",", "x");
 类似资料:
  • 我怎么能在Java中做到这一点呢?

  • 问题内容: 假设我们有类似的东西: 我想将“ someText”替换为其他内容。考虑到我不知道someText可能是什么(任何字符串)并且我所知道的是它将被&firstString =和&endString =包围的事实,最佳方法是什么? 编辑:对不起,看起来这还不够清楚。我不知道“ someText”可能是什么,我仅有的信息是它将位于&firstString =和&endString =之间 我

  • 问题内容: 我想删除两个字符之间以及字符本身之间的字符串,例如说: 我想替换“#?”之间所有出现的字符串 和“;” 并用字符将其删除。 由此 对此 我怎么能用Java做到呢? 问题答案: 使用正则表达式:

  • 问题内容: 假设我有以下代码: 这段代码运行后,价值会 如果我以相反的顺序替换它们,则会发生类似的问题: 的值将是 我的目标是把成我怎么能做到呢? 问题答案: 使用Apache Commons StringUtils中的方法:

  • 我已经做了一个有效的解决方案,但它很无聊,也很不优雅: 如何使用Regex实现这一点?

  • 问题内容: 问题是需要替换给定字符串中的单个字符,同时保留字符串中的其他字符。 代码是: 问题答案: 您几乎做到了,只需在循环中添加一个计数器即可: