【问题标题】:[ERROR]java.lang.ArrayIndexOutOfBoundsException:1[错误]java.lang.ArrayIndexOutOfBoundsException:1
【发布时间】:2014-07-08 15:10:18
【问题描述】:

我在 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();

}

【问题讨论】:

  • Name的值是多少?
  • 在访问[0][1] 之前检查Name_parsed 的长度。你不确定它是否是一个 2-length 数组

标签: java informatica informatica-powercenter


【解决方案1】:

您的输入字符串可能少于 1 个&amp; 字符。尝试打印Name 变量以查看是否是这种情况。您可以随时将其包装在 try/catch 块中以处理这些情况。

【讨论】:

    【解决方案2】:

    这个错误意味着你有一个长度小于 1 的数组。

    这意味着Name.split(Name_delimiter) 返回的数组只有一个元素。

    当您尝试访问索引1 此处o_Name =Name_parsed[1]; 时,它找不到它。

    验证您的输入数据。

    【讨论】:

      【解决方案3】:

      如果名称字段中可以有可变数量的“&”,你应该这样做:

      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();
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-20
        • 2019-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多