我在执行以下代码时遇到异常:java.lang.StringIndexOutOfBoundsException

时间:2016-02-08 07:11:55

标签: java string exception aspose-cells

//for loop for traversing rows
for (int i = 1 ; i < roorws.getCount() ; i++)
        {   // for loop for traversing columns
            for (int j = 1 ;j<tcols ; j++)
             {  //if column is 5
                if(j==5)

                 //printing values of cell 5 

                 System.out.print(cells.get(i,j).getValue().toString().substring(0, 26).length()+ "\t");
                 String cell1=cells.get(i,j).getValue().toString().substring(0, 26);

                 cell=cells.get("F2");
                 cell.putValue(cell1);
             }
        System.out.println("");
        }

1 个答案:

答案 0 :(得分:0)

显然字符串的长度不是(至少)26个字符。变化:

System.out.print(cells.get(i,j).getValue().toString().substring(0, 26).length()+ "\t");

为:

System.out.print(cells.get(i,j).getValue().toString().length()+ "\t");

打印字符串的长度。

您可以使用Apache Commons StringUtils substring() method以安全的方式获取子字符串(因此最多只需要n个字符):

String cell1= StringUtils.substring(cells.get(i,j).getValue().toString(), 0, 26);