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