用java中的硬编码替换特定位置的字符串与另一个字符串

时间:2015-11-27 16:34:23

标签: java regex replaceall

我正在从特定位置的文件中读取字符串,我需要通过调用函数进行一些转换,并且必须在相同的位置替换结果字符串。下面的代码会引发非法重复错误,因为我的字符串中包含诸如'}',' {'等字符。当它特别没有硬编码时,我不知道如何逃避这些角色。请帮忙。

    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

1 个答案:

答案 0 :(得分:1)

replaceAll的第一个参数是正则表达式。 {}是正则表达式中的出现字符。你可以做到

strLine = strLine.replaceAll(Pattern.quote(mfStr), number);  

或只是

strLine = strLine.replace(mfStr, number);