我想用java中双引号内的任何一个特殊字符(例如“#”)替换所有逗号。
下面是字符串:
String line="\"Lee, Rounded, Neck, Printed\",410.00,300.00,\"Red , Blue\",lee";
输出 :
"Lee# Rounded# Neck# Printed",410.00,300.00,"Red # Blue",lee
我试过这个:
public class Str {
public static void main(String[] args) {
String line="\"Lee, Rounded, Neck, Printed\",410.00,300.00,\"Red , Blue\",lee";
String lineDelimiter=",";
String templine=line;
if(templine!=null && templine.contains("\""))
{
Pattern p=Pattern.compile("(\".*?"+Pattern.quote(lineDelimiter)+".*?\")");
Matcher m=p.matcher(templine);
if(m.find())
{
for (int i = 1; i <= m.groupCount(); i++) {
String Temp=m.group(i);
String Temp1=Temp;
Temp=Temp.replaceAll("(,)", " ## ");
line=line.replaceAll(Pattern.quote(Temp1),Pattern.quote(Temp));
}
}
}
}
}
使用上面的代码,我只能找到引号内出现的字符串的第一次出现,而不是第二次出现(“红色,蓝色”)。