java - 如何在 Jasper 中找出 String[] 的大小

标签 java groovy jasper-reports

我有一个 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/

相关文章:

java - 我编写了以下程序,用于在线程的帮助下用java创建动画。但它给o/p作为透明窗口

groovy - 如何检查Groovy类是否具有静态属性?

java - groovy中的invokeMethod是在哪里实现的?

jasper-reports - BIRT/Jasper/Pentaho - 临时报告?

xpath - Jasper Reports 使用 Xpath 函数

java - 如何从倒数计时器中减去几秒钟?

java - 使用 Netbeans 进行 Android 应用程序编程

java - 滚动 JScrollPane 时出现问题 - 线程

Groovy:相同的参数,不同的结果

java - java.lang.NoSuchMethodError : com. fasterxml.jackson.databind.ObjectWriter.forType 错误 [Jasperreports] [Spring MVC]