我在informatica java转换中执行了以下java脚本,但我收到错误:[ERROR]java.lang.ArrayIndexOutOfBoundsException:1
String [] Name_parsed;
String Name_delimiter = "&";
String Name_li = Name;
int Name_length = Name_li.length();
for (int i=0; i < Name_length; i++)
{
Name_parsed = Name.split(Name_delimiter);
o_Name =Name_parsed[0];
generateRow();
o_Name =Name_parsed[1];
generateRow();
}
答案 0 :(得分:2)
有可能,您的输入字符串少于1 &
个字符。尝试打印Name
变量以查看是否是这种情况。您始终可以将其包装在try/catch
块中以处理这些情况。
答案 1 :(得分:2)
错误意味着您的数组长度低于1.
这意味着Name.split(Name_delimiter)
只返回一个元素的数组。
当您尝试访问1
索引o_Name =Name_parsed[1];
时,它无法找到它。
验证您的输入数据。
答案 2 :(得分:1)
如果名称字段中可以有可变数量的“&amp;”(s),您应该这样做:
String [] Name_parsed;
String Name_delimiter = "&";
String Name_li = Name;
int Name_length = Name_li.length();
for (int i=0; i < Name_length; i++)
{
Name_parsed = Name.split(Name_delimiter);
for (int j=0; j<Name_parsed.length; j++){
{
o_Name =Name_parsed[j];
generateRow();
}
}