我正在从特定位置的文件中读取字符串,我需要通过调用函数进行一些转换,并且必须在相同的位置替换结果字符串。下面的代码会引发非法重复错误,因为我的字符串中包含诸如'}',' {'等字符。当它特别没有硬编码时,我不知道如何逃避这些角色。请帮忙。
String MFstr = strLine.substring(612,623);
StringBuilder sbMFstr=new StringBuilder (strLine.substring(612,623));
String temp="";
if (mfn.isNegativeMFOrNegativeOverPunch(MFstr)){
temp = "-"+MFstr;}
else{
temp=MFstr;}
String number=mfn.MForOverPunchToNumber(MFstr);
if( temp.startsWith("-")){
//Positive is false
number = "0" + number;
}
strLine.replaceAll(MFstr, number); //This line throws Exception
答案 0 :(得分:1)
replaceAll
的第一个参数是正则表达式。 {
和}
是正则表达式中的出现字符。你可以做到
strLine = strLine.replaceAll(Pattern.quote(mfStr), number);
或只是
strLine = strLine.replace(mfStr, number);