【问题标题】:How to find out the size of an String[] in Jasper如何在 Jasper 中找出字符串 [] 的大小
【发布时间】:2014-11-04 02:14:09
【问题描述】:

我有一个 Jasper 报告,将我的数据放入 csv 中,我需要这样的东西:

$F{OBSERVATII}.split(" ").size()>=2 ? ($F{OBSERVATII}.split(" ")[0]+" "+$F{OBSERVATII}.split(" ")[1]+" "+$F{OBSERVATII}.split(" ")[2]) : $F{OBSERVATII}

但是贾斯珀扔给我一个

无法对数组类型 String[] 调用 size()

如果我只放

$F{OBSERVATII}.split(" ")[0]+" "+$F{OBSERVATII}.split(" ")[1]+" "+$F{OBSERVATII}.split(" ")[2])

然后,当我有一个简单的字符串(不带空格)时,它会给我一个错误...

【问题讨论】:

标签: java groovy jasper-reports


【解决方案1】:

最终编辑:

Jasper Reports 的正确语法是这样的。显然 Jasper 不喜欢在这种情况下使用属性 .length。

 Arrays.asList($F{OBSERVATII}.split(" ")).size() ? blah...

您不想要字符串数组的长度属性,而不是不适用于数组的 size 方法吗?

.length >= 2 ? blah

编辑说:

你说 Jasper 不喜欢上面的语法,但它是你应该使用的。你可以试试:

(String[] $F{OBSERVATII}.split(" ")).length>=2 ? blah...

或者

Arrays.asList($F{OBSERVATII}.split(" ")).size() ? blah...

这会将您的数组转换为列表并使用 size 方法。我不知道 Jasper 会不会喜欢,如果不是,我想他们的表情编辑器很烂。

【讨论】:

  • 我试过 .length 但 Jasper 表达式编辑器给我“当前表达式无效。请验证它!”。我必须输入 $F{OBSERVATII}.split(" ").length()>=2 但这给了我“无法在数组类型 String[] 上调用 length()”...
  • @MihaiG 那是因为length 是一个属性而不是一个方法。去掉括号,它应该可以工作(即 mikeb 的代码完全正确)。
  • Arrays.asList($F{OBSERVATII}.split(" ")).size()>=2 有效,(String[] $F{OBSERVATII}.split(" "))。 length>=2 - 不要,但没关系,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 2011-08-31
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多