在 java 中用另一个字符串替换特定位置的字符串而不进行硬编码

Replace a string at particular position with another string without hardcoding in java

我正在从文件中的特定位置读取字符串,我需要通过调用函数进行一些转换,并且必须在同一位置替换生成的字符串。下面的代码抛出非法重复错误,因为我的字符串包含“}”、“{”等字符。我不知道如何在没有硬编码的情况下转义这些字符。请帮忙

    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

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

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

或者干脆

strLine = strLine.replace(mfStr, number);