比较字符串时出现java问题
我有以下问题:
我有一个值随附的序列:
“ORA-00904:TESTE:Identificator inválido”
我需要在查询中将此测试字段替换为空(“”)
但是,如果我的查询包含另一个名为TESTE的字段,例如TESTE和I replace,则它仍然是错误的,将TESTE替换为and TESTETE for
TE
我想替换``的TESTE,让TESTE知道它是什么样子
我的示例查询是:
从TBL中选择TESTE、TESTE、fld1
我的逻辑如下:
String oracleMsg = "ORA-00904: TESTE: identificador inválido";
String query = "SELECT TESTE, TESTETE, OUTRO FROM TBL";
String comp = "TESTE";
if (oracleMsg.contains(comp)){
query = query.replace(comp, "''");
}
System.out.println(query);
结果:从TBL中选择“”、“”TE、OUTRO 预期结果?从TBL中选择“”、测试、输出
非常感谢
# 1 楼答案
使用正则表达式,并用单词边界锚围绕模式
如果只想替换模式的一个实例,请使用
replaceFirst
而不是replaceAll
# 2 楼答案
尝试将变量comp更改为
由于逗号和空格,它将只删除“TESTE”。 您还可以将替换方法更改为
现在你有了一个干净的查询,没有“TESTE”和 撇号