我需要在第5个之后替换所有逗号。因此,如果一个String包含10个commans,我想只留下前5个,并删除所有后续逗号。
我该怎么做?
String sentence = "Test,test,test,test,test,test,test,test";
String newSentence = sentence.replaceAll(",[6]","");
答案 0 :(得分:6)
只需捕获从开头到第五个逗号的所有字符,并使用交替运算符|
匹配所有剩余的逗号。因此,
之后的|
应与所有剩余的逗号匹配。将所有匹配的字符替换为$1
将为您提供所需的输出。
sentence.replaceAll("^((?:[^,]*,){5})|,", "$1");
答案 1 :(得分:1)
如果您想知道如何在不使用正则表达式的情况下解决此问题...有些库可以让您的生活更轻松,但这是我想到的第一个想法。
public String replaceSpecificCharAfter( String input, char find, int deleteAfter){
char[] inputArray = input.toCharArray();
String output = "";
int count = 0;
for(int i=0; i <inputArray.length; i++){
char letter = inputArray[i];
if(letter == find){
count++;
if (count <= deleteAfter){
output += letter;
}
}
else{
output += letter;
}
}
return output;
}
然后你会调用这样的函数:
String sentence = "Test,test,test,test,test,test,test,test";
String newSentence = replaceSpecificCharAfter(sentence, ',', 6);