我是些错了
String str="(MgO+CaO)*1.24+79";
String str2="MgO+CaO";然后 我用if(str.indexOf(str2)>=0)
str=str.replaceAll(str2,"78");大家可能误会了我的意思
我是想说
str2应该是在str中的
可是结果并不是这样啊。
好像indexOf不能搜索类似"MgO+CaO"这样的字符串啊
怎么办啊
String str="(MgO+CaO)*1.24+79";
String str2="MgO+CaO";然后 我用if(str.indexOf(str2)>=0)
str=str.replaceAll(str2,"78");大家可能误会了我的意思
我是想说
str2应该是在str中的
可是结果并不是这样啊。
好像indexOf不能搜索类似"MgO+CaO"这样的字符串啊
怎么办啊
str.indexOf(str2)返回的是1,
不过你用的replaceAll()有问题
replaceAll()中要求第一个参数是
正则表达式,而你的+号在正则表达式
重视有含义的,所以你需要对他进行转义
写成这样可以完成你的要求
System.out.println(str2.replaceAll("(MgO\\+CaO)","78"));
这样就行了
但是repalceAll这个函数,好像不可以:(
我看了一下,好像是因为+号:(
public static void main(String[] args) {
String str="(MgO+CaO)*1.24+79";
String str2="MgO\\+CaO";
//if(str.indexOf(str2)>=0)多余
System.out.println(str.indexOf(str2));//-1因为此处参数非正则表达式
str=str.replaceAll(str2,"78");//第一个参数是正则式,+是特殊字符,需转义
System.out.println(str);
}
}可以了吧!
for(int l=0;l<j;l++) //循环匹配基本指标字符串,
{ if(formula.indexOf(data[l].itemname)>=0) //用值替换基本指标名
formula=formula.replaceAll(data[l].itemname,data[l].itemresult[k]);
}
//下面是用jep对formula数字字符串进行计算。