我正在从文件中的特定位置读取字符串,我需要通过调用函数进行一些转换,并且必须在同一位置替换生成的字符串。下面的代码会抛出非法重复错误,因为我的字符串包含“}”、“{”等字符。当这些字符没有特别硬编码时,我不知道如何转义这些字符。请帮忙。
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);
关于java - 将特定位置的字符串替换为另一个字符串,而无需在 java 中进行硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961562/