0

この実行時エラーに直面しています**"Exception in thread "main" java.lang.NumberFormatException: For input string: "" "**。これを克服するために助けてください。

コード スニペットは次のとおりです。

package SampleC;
import java.io.File;
import java.io.IOException;
import java.util. *;


import jxl.*;
import jxl.read.biff.BiffException;


import jxl.write.WriteException;

import java.util.ArrayList;
import java.util.Vector;

public class Test {
    public static void main(String args[])throws IOException, BiffException, WriteException {
    {
        try
        {
        Workbook workbook=Workbook.getWorkbook(new File("C:\\Documents and Settings\\snandam\\Desktop\\readvalues.xls"));

         Sheet sheet =workbook.getSheet(0);
    // String[] s=new String[200];
         int[] s = new int [200];
         Cell[][] cell=new Cell[100][100];

         ArrayList<Integer> myList = new ArrayList<Integer>();
         {


         for(int i=0;i<sheet.getColumns();i++)
         {
             for(int j=0;j<sheet.getRows(); j++)
             {
             cell[i][j] = sheet.getCell(i, j);

             s[i]=Integer.parseInt(cell[i][j].getContents());

           //  System.out.printf("%s\n", s[i]);
             Collections.addAll(myList, s[i]); 


             } 



      }


      ArrayList<Integer> a1 = new ArrayList<Integer>();
      a1.add(3);a1.add(-3);a1.add(-8);a1.add(0);

      ArrayList<Integer> a2 = new ArrayList<Integer>();
      a2.add(-1);a2.add(-4);a2.add(-7);a2.add(6);

      ArrayList<Integer> a3 = new ArrayList<Integer>();
      a3.add(1);a3.add(5);a3.add(6);a3.add(7);

      ArrayList<Integer> a4 = new ArrayList<Integer>();
      a4.add(-10);a4.add(-4);a4.add(-1);a4.add(3);a4.add(8);

      ArrayList<Integer> a5 = new ArrayList<Integer>();
      a5.add(17);a5.add(18);a5.add(19);a5.add(20);a5.add(21);a5.add(22);a5.add(23);a5.add(24);

      int target = 0;

      Vector<ArrayList<Integer>> vecOfLst   = new Vector<ArrayList<Integer>>();
      vecOfLst.add(myList);
      vecOfLst.add(a1);
      vecOfLst.add(a2);
      GlobalMembers gMem    = new GlobalMembers();
      gMem.findtarget(target, vecOfLst, 3);
      vecOfLst.add(a3);
      vecOfLst.add(a4);
      vecOfLst.add(a5);
      gMem.findtarget(target, vecOfLst, 6);
    }
} catch (BiffException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}  

        }
    }
}
4

4 に答える 4

0

cell[i][j] の値が null または空であることを確認してください。cell[i][j]!=null または空の場合、値を int に解析します。次に、例外を処理します。

于 2011-05-10T07:26:51.897 に答える
0

という時があります

cell[i][j].getContents()

空の文字列を返します。入力ファイルを注意深く確認する必要があります。解析しようとしているものを出力してデバッグしてください。また、コードが読みやすいように質問を編集してください。

于 2011-05-10T07:11:34.793 に答える
0

この行を解析する前に

s[i]=Integer.parseInt(cell[i][j].getContents());

空の文字列、null、またはアルファベットまたは特殊文字の s[i]をチェックします。

上記の文字が見つからない場合は、解析できます。

于 2011-05-10T07:11:38.420 に答える