Java中的字符串相等性比较失败

时间:2013-01-27 05:42:13

标签: java string jpa oracle11g ejb

我从对象列表中的对象中获取一个字符串值。

transitionName = transitionList.get(m).getTransitionName().toString();

来自EJB查询检索的对象的另一个字符串值。

changeItem = changeItemFacade.getChangeItem(changeGroupList.get(1));
char tempNewString[] = changeItem.getNewstring();
newString=new String(tempNewString);

现在这个Char []到String的比较是因为包含changeItem的Oracle表已将coloumn NewString定义为CLOB。 并且ejb实体将变量'NewString'的类型定义为Char []数组。 所以我必须在进行比较之前将其转换为字符串。

问题是这个if语句总是返回false并且不会被执行。

if(transitionName.equalsIgnoreCase(newString)){}

当我尝试记录值(Logger.Debug)时,它在服务器实例日志中完美地显示了两个(相等的)字符串值。

我转换char []数组的方式有问题吗?

我尝试将实体类变量的类型更改为String(当然还有getter和setter方法),但也不起作用。

1 个答案:

答案 0 :(得分:1)

在比较之前尝试对字符串进行trim()。另外,查找字符编码差异。 - 奇点