java - 比较字符串时出现问题

标签 java string compare

我遇到以下问题:

我有一个带有值的序列:

“ORA-00904:TESTE:标识符无效”

我需要在查询中将此测试字段替换为空 ('')。

但是,如果我的查询包含名称为 TESTETE 的其他字段,并且我替换为 '',则它仍然错误,将 TESTE 替换为 ,将 TESTETE 替换为 TE

我想将 TESTE 替换为 ``,而 TESTETE 让它保持原样。

<小时/>

我的示例查询是:

从 TBL 中选择 TESTE、TESTETE、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 中选择“”、TESTETE、OUTRO

非常感谢!!!

最佳答案

使用正则表达式并用单词边界 anchor 围绕您的模式。

 query = query.replaceAll("\\b"+comp+"\\b", "''");

如果您只想替换该模式的一个实例,请使用 replaceFirst 而不是 replaceAll

关于java - 比较字符串时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36648547/

相关文章:

java - Neo4J 遍历内存不足

java - 我如何获取字节数组的第一个 "n"元素并将它们直接转换为字符串?

java - 将字符串转换为 double

java - Spring @Transactional + jdbcTemplate 调用Web服务

python - 注释中的字符出错

python - Sympify() 和 Eval() 方程不在函数内执行

php - 如果比较在 php 中不起作用

java - 将用户输入(字符)与其他字符进行比较

java - 如何比较jaxb、对象、字符串来查找差异

Java - 安全 session 管理的最佳实践