我有一个简单的代码,我想用一个逗号替换字符串中的多个逗号。这是我尝试过的。我也在寻找火柴,但是我不知何故无法代替它。我不知道我在做什么错。
String s = "stt,111,,,234";
String pattern = "\\d[,]{2,}\\d";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(s);
if (m.find()) {
System.out.println("Found value: " + m.group(0));
String res = m.group(0);
s = s.replace(res, ",");
System.out.println("string after replacement=" + s);
} else {
System.out.println("Not found");
}
s = s.replace("\\d[,]{2,}\\d", ",");
System.out.println("Another try string after replacement=" + s);
这是结果:
Found value: 1,,,2
s=stt,111,,,234
s==stt,111,,,234
为什么即使找到该字符串也不能替换它。 我确定它很小,但无法弄清楚它是什么。 谢谢
答案 0 :(得分:1)
您只需使用字符串类的replaceAll方法,如下所示。
public static void main(String[] args) throws ParseException {
String s = "stt,111,,,234";
System.out.println("--------"+s.replaceAll("[,]{2,}", ","));
}
答案 1 :(得分:1)
replaceAll方法在您的示例中效果很好。尝试一下:
public static void main(String [] args){
String str = "11,,,222,,,333,,,,,,4444,,,,,,,55555,,,555";
str = str.replaceAll(",{2,}", ",");
System.out.println(str);
}
输入: “ 11,,222,,333 ,,,,, 4444 ,,,,,, 55555 ,,, 555” 输出: 11,222,333,4444,55555,555
答案 2 :(得分:0)
尝试以下代码,它将起作用。
import java.util.*;
import java.lang.*;
import java.io.*;
class Abc
{
public static void main (String[] args) throws java.lang.Exception
{
String str = "abc,,,,,,,,xyz,,,,abc";
str = str.replaceAll("(.)\\1+","$1");
System.out.println(str);
}
}