Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换字符串的前两个逗号_Java_Regex_String - Fatal编程技术网

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

Java 替换字符串的前两个逗号,java,regex,string,Java,Regex,String,是否有一个正则表达式可用于仅用另一个字符替换字符串中的前两个逗号 我之所以需要它,是因为我正在使用RDF三元组,其中我需要分别处理主语、谓语和宾语。因此,我使用String.split()方法将它们分成三个独立的部分 这是我需要拆分的字符串示例: [,“Tom Mathisen(生于1952年8月14日)是挪威喜剧演员、演员、编剧和音乐家。他通常处理贝司、吉他和声乐。1976年至1983年,他与Jahn Teigen和Herodes Falsk一起加入喜剧团体Prima Vera。之后,他继续与

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

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

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

[,“Tom Mathisen(生于1952年8月14日)是挪威喜剧演员、演员、编剧和音乐家。他通常处理贝司、吉他和声乐。1976年至1983年,他与Jahn Teigen和Herodes Falsk一起加入喜剧团体Prima Vera。之后,他继续与Herodes Falsk合作制作许多电视/现场节目和唱片。”@en]

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

[$$”汤姆·马蒂森(生于1952年8月14日)是一名挪威喜剧演员、演员、编剧和音乐家。他通常负责贝司、吉他和声乐。1976年至1983年,他与杰恩·泰根和赫罗德·法尔斯克一起加入喜剧团体Prima Vera。之后,他继续与赫罗德·法尔斯克合作制作许多电视/现场秀和唱片。“@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();
StringBuilder-StringBuilder=新的StringBuilder(str);
int commaCounter=0;
对于(int i=0;i
使用两次
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);

使用两次
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 = input.replaceFirst(",", "x").replaceFirst(",", "x");

像这样的事情比较直截了当

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

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

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

    System.out.println(someString);
输出为:

    a- b- c, d

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

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

    System.out.println(someString);
输出为:

    a- b- c, d

您可以按如下方式直接从前两个
中拆分文本。要拆分,无需将
替换为
$
。这太过分了,只需从前两个
中立即拆分即可

String str="http://dbpedia.org/resource/Tom_Mathisen, http://www.w3.org/2000/01/rdf-schema#comment, \"Tom Mathisen (born 14 August 1952) is a Norwegian comedian, actor, screenwriter and musician. He usually handles bass, guitar and vocals. He was in the comedy group Prima Vera from 1976 to 1983 along with Jahn Teigen and Herodes Falsk. Later he continued to work with Herodes Falsk on many TV/scene shows and records.\"@en";
String[] arr=str.split(",",3);
 for (String i : arr) {
        System.out.println(i);
 }
输出:

http://dbpedia.org/resource/Tom_Mathisen
http://www.w3.org/2000/01/rdf-schema#comment
"Tom Mathisen (born 14 August 1952) is a Norwegian comedian, actor, screenwriter and musician. He usually handles bass, guitar and vocals. He was in the comedy group Prima Vera from 1976 to 1983 along with Jahn Teigen and Herodes Falsk. Later he continued to work with Herodes Falsk on many TV/scene shows and records."@en

您可以按如下方式直接从前两个
中拆分文本。要拆分,无需将
替换为
$
。这太过分了,只需从前两个
中立即拆分即可

String str="http://dbpedia.org/resource/Tom_Mathisen, http://www.w3.org/2000/01/rdf-schema#comment, \"Tom Mathisen (born 14 August 1952) is a Norwegian comedian, actor, screenwriter and musician. He usually handles bass, guitar and vocals. He was in the comedy group Prima Vera from 1976 to 1983 along with Jahn Teigen and Herodes Falsk. Later he continued to work with Herodes Falsk on many TV/scene shows and records.\"@en";
String[] arr=str.split(",",3);
 for (String i : arr) {
        System.out.println(i);
 }
输出:

http://dbpedia.org/resource/Tom_Mathisen
http://www.w3.org/2000/01/rdf-schema#comment
"Tom Mathisen (born 14 August 1952) is a Norwegian comedian, actor, screenwriter and musician. He usually handles bass, guitar and vocals. He was in the comedy group Prima Vera from 1976 to 1983 along with Jahn Teigen and Herodes Falsk. Later he continued to work with Herodes Falsk on many TV/scene shows and records."@en

基于正则表达式的解决方案

System.out.println("a, b, c, d".replaceAll("^([^,]*),([^,]*),", "$1X$2X"));
输出:

aX bX c, d

基于正则表达式的解决方案

System.out.println("a, b, c, d".replaceAll("^([^,]*),([^,]*),", "$1X$2X"));
输出:

aX bX c, d


举个例子会更好。这是拆分还是替换?不仅更好,示例在这个问题中是绝对必要的。我现在已经编辑了这个问题。希望它能为读者提供更多的上下文。所以前两个逗号需要删除,或者需要替换为什么?@Jea Ok。不客气。但无需将前两个替换为另一个,然后再按另一个拆分。一次做一次,举个例子会更好。这是拆分还是替换?不仅更好,示例在这个问题中是绝对必要的。我现在已经编辑了这个问题。希望它能为读者提供更多的上下文。所以前两个逗号需要删除,或者需要替换为什么?@Jea Ok。不客气。但无需将前两个替换为另一个,然后再按另一个拆分。一次完成。为什么要循环?只需像这样使用ReplaveFirstTwicei即可。它是可伸缩的。请始终在for循环上使用花括号,即使它只有一行!最佳实践…为什么是循环?只需像这样使用ReplaveFirstTwicei即可。它是可伸缩的。请始终在for循环上使用花括号,即使它只有一行!避免正则表达式的最佳实践…+1。杰米·扎温斯基:“有些人在遇到问题时会想:“我知道,我会使用正则表达式。”现在他们有两个问题了。谢谢。不是正则表达式,而是更好的解决方案。好的,对不起。更好;)@Jea-
String replaceFirst(String regex,String replacement)
是签名:实际上,它是一个regex,但是由于
不是一个特殊字符,我们可以使用看起来像普通字符串replace的字符:)+1来避免regex。杰米·扎温斯基:“有些人在遇到问题时会想:“我知道,我会使用正则表达式。”现在他们有两个问题了。谢谢。不是正则表达式,而是更好的解决方案。好的,对不起。更好;)@Jea-
String replaceFirst(String regex,String replacement)
是签名:实际上,它是一个regex,但由于
不是一个特殊字符,我们可以使用看起来像普通字符串替换的字符:)@amitbhardwaj OP的最终目标似乎是从前两个
中分离出来,
阅读问题下方的评论,您将理解OP的最终目标。没有必要再给出另一个答案,因为有很多正确的答案来回答OP到底是什么want@amitbhardwajOP的最终目标似乎与前两个<代码>,阅读问题下方的评论,您将了解OP的最终目标。没有必要再给出另一个答案,因为OP真正想要的答案有很多