簡體   English   中英

替換字符串的前兩個逗號

[英]Replacing the first two commas of a string

是否可以使用正則表達式將字符串中的兩個第一個逗號替換為另一個字符?

我之所以需要它,是因為我正在使用RDF三元組,在這里我需要分別處理主語,謂語和賓語。 因此,我使用String.split()方法將它們分為三個獨立的部分。

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

[ http://dbpedia.org/resource/Tom_Mathisenhttp://www.w3.org/2000/01/rdf-schema#comment ,“湯姆·馬蒂森(1952年出生8月14日)是挪威的喜劇演員,演員,編劇他通常處理低音,吉他和人聲。1976年至1983年,他與喜劇團Prima Vera以及Jahn Teigen和Herodes Falsk在一起。后來,他繼續與Herodes Falsk一起進行許多電視/場景的演出和錄制。 @

例如,我希望此String看起來像這樣,所以我可以使用$進行拆分:

[ http://dbpedia.org/resource/Tom_Mathisen $ http://www.w3.org/2000/01/rdf-schema#comment $“湯姆·馬蒂森(1952年8月14日出生)是挪威喜劇演員,演員,編劇他通常處理低音,吉他和人聲。1976年至1983年,他與喜劇團Prima Vera以及Jahn Teigen和Herodes Falsk在一起。后來,他繼續與Herodes Falsk一起進行許多電視/場景的演出和錄制。 @

我用一種不太優雅的方式做到了:

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

使用兩次replaceFirst 這將做您想要的。 如果要前n次替換特定的char,請使用forloop。

    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

或者,如果您始終只希望替換前兩個字符,則可以鏈接方法。

   String s = "this, is, a, Test";
   s = s.replaceFirst(",", "$").replaceFirst(",", "$");

如果只想替換逗號,則可以調用replaceFirst 2次。 例如:

    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

基於正則表達式的解決方案,

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

輸出:

aX bX c, d

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM