我有一个 Jasper 报告,将我的数据放入 csv 中,我需要这样的内容:
$F{OBSERVATII}.split(" ").size()>=2 ? ($F{OBSERVATII}.split(" ")[0]+" "+$F{OBSERVATII}.split(" ")[1]+" "+$F{OBSERVATII}.split(" ")[2]) : $F{OBSERVATII}
但是贾斯帕给了我一个
Cannot invoke size() on the array type String[]
如果我只放
$F{OBSERVATII}.split(" ")[0]+" "+$F{OBSERVATII}.split(" ")[1]+" "+$F{OBSERVATII}.split(" ")[2])
然后,当我有一个简单的字符串(没有空格)时,它会给我一个错误......
最佳答案
最终编辑:
Jasper Reports 的正确语法是这样的。显然 Jasper 不喜欢在这种情况下使用 .length 属性。
Arrays.asList($F{OBSERVATII}.split(" ")).size() ? blah...
您不想使用字符串数组的 length 属性,而不是不适用于数组的 size 方法吗?
.length >= 2 ? blah
编辑后说:
你说 Jasper 不喜欢上面的语法,但这是你应该使用的。您可以尝试:
(String[] $F{OBSERVATII}.split(" ")).length>=2 ? blah...
或者
Arrays.asList($F{OBSERVATII}.split(" ")).size() ? blah...
这会将您的数组转换为列表并使用 size 方法。我不知道 Jasper 是否会喜欢,如果不喜欢,我想他们的表达式编辑器很糟糕。
关于java - 如何在 Jasper 中找出 String[] 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765263/