0

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

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 表已将列 NewString 定义为 CLOB。并且 ejb 实体将变量“NewString”的类型定义为 Char[] 数组。所以我必须在进行比较之前将其转换为字符串。

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

if(transitionName.equalsIgnoreCase(newString)){}

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

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

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

4

1 回答 1

1

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

于 2013-01-27T05:56:56.127 回答