List JasperReports:将字符串转换为数组并用它填充列表

List JasperReports:将字符串转换为数组并用它填充列表,list,jasper-reports,List,Jasper Reports,我拥有的是这个字符串[1251547494215785155632147985] (字符串中可以有1到15个ID,它之所以是字符串而不是列表,是因为它是通过URL发送的) 我需要用它填充一个名为campusAndFaculty的列表 我正在使用iReport 5.0.0 我已尝试在campusAndFacultydefault value Expression字段中输入该值 Array.asList(($P{campusAndFacultyString}.substring( 1, ($P{ca

我拥有的是这个
字符串[1251547494215785155632147985]
(字符串中可以有1到15个ID,它之所以是字符串而不是列表,是因为它是通过URL发送的)

我需要用它填充一个名为
campusAndFaculty
的列表

我正在使用iReport 5.0.0

我已尝试在
campusAndFaculty
default value Expression字段中输入该值

Array.asList(($P{campusAndFacultyString}.substring( 1, ($P{campusAndFacultyString}.length() -2 ))).split("\\s*,\\s*"))
但它不会填充
校园和教员
列表

知道如何使用
字符串(“campusAndFacultyString”)
填充
列表campusAndFacultyString

====================== 更新

我在iReport(5.0.0)中有这些变量

当我打印campusAndFacultyVar时,它返回“[111125126458712351259]”

但是,当我在过滤器中使用它时,我得到了“无法计算以下表达式:org\u organization.org\u be\u id为null”

这对我很有用:

String something = "[125, 154, 749, 215, 785, 1556, 3214, 7985]";
Arrays.asList((something.substring(1, (something.length() -1 ))).split("\\s*,\\s*"));
这意味着您可以在iReport中执行此操作:

java.util.Arrays.asList(($P{campusAndFacultyString}.substring(1, (something.length() -1 ))).split("\\s*,\\s*"));
与代码片段的差异:

  • 这是数组,不是数组
  • 你应该从长度中取1,而不是2
  • 对Arrays类的完全限定引用(这取决于iReport的配置方式)

我使用“java.util.Arrays.asList($P{campusAndFacultyFromBack}.substring(1,($P{campusAndFacultyFromBack}.length()-1)).split(“\\s*,\\s*”),但如果我打印它,它将返回null,然后显示,但当我尝试将它用作筛选器时,它返回null
java.util.Arrays.asList(($P{campusAndFacultyString}.substring(1, (something.length() -1 ))).split("\\s*,\\s*"));