是否有一个正则表达式只用于用另一个字符替换字符串中的两个第一个逗号?
我之所以需要这样做,是因为我正在使用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 )合作制作许多电视/现场节目和唱片。”
我是以一种不那么优雅的方式做的:
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();发布于 2014-09-18 11:13:24
像这样的东西是相对直接的吗?
String s = input.replaceFirst(",", "x").replaceFirst(",", "x");发布于 2014-09-18 11:13:10
使用两次replaceFirst。这能做你想做的事。如果要在第一次n时替换特定的字符,请使用for循环。
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(",", "$");发布于 2014-09-18 11:13:57
如果只想替换逗号,可以调用replaceFirst 2次。例如:
String someString = "a, b, c, d";
someString = someString.replaceFirst(",", "-");
someString = someString.replaceFirst(",", "-");
System.out.println(someString);产出如下:
a- b- c, dhttps://stackoverflow.com/questions/25911090
复制相似问题