2013-08-28 23 views
0

我需要的是比較或搜索表名稱的字符串..不能與字符串值進行比較SHEETNAME

我的意思是,Excel文件可能有一個以上的表,但只能用牀單一個特定的字符串讓利說

唯一命名錶「FORMATO SIVE 04」將要處理......

我調試像瘋了似的,我感到困惑......我的代碼是這樣的

  Workbook eworkbook = WorkbookFactory.create(Archivo); 

      int totalsheet = eworkbook.getNumberOfSheets(); 

      System.out.println("fuerawhile"+totalsheet); 
      sheetName=new String[totalsheet]; 

      //String nombrehoja = eworkbook.getSheetName(0).toString();     
      //System.out.println(nombrehoja); 

      Sheet sheet = null; 

      while(i<totalsheet){ 
       sheetName[i] = eworkbook.getSheetName(i); 
       System.out.println("Antes IF :" + sheetName[i]); 
       FORMATO = sheetName[i]; 
       if(FORMATO == "FORMATO SIVE 04"){ 
        flag = true; 
       } 

       if(flag){ 
        System.out.println("dentroIF : " + sheetName[i]); 
        sheet = eworkbook.getSheet(sheetName[i].toString()); 
        System.out.println("Exito"); 
       } 
       else if (!flag){ 
        System.out.println("Error"); 
       } 
       System.out.println("dentrowhile : " + sheetName[i]); 
       i++; 
      } 

但它不給我真實:( enter image description here

有沒有人有任何想法?

我覺得這是太容易了,但我有很多時間在這,我想我是正確的:(

在此先感謝

+1

不要將字符串值與'=='進行比較;使用'String'的'equals'方法。 – rgettman

+0

呃! 謝謝你的男人! – jompi

+0

可能的重複[如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – rgettman

回答

2

在Java中,String S的關係永遠無法比擬的。使用==(除非你想測試實習生邏輯,也許)身高:

if("FORMATO SIVE 04".equals(FORMATO)) { 
.... 

如果你確信FORMATO永遠null,您還可以使用更清晰的形式:

if(FORMATO.equals("FORMATO SIVE 04")) { 
+0

是的,謝謝你的時間人... 它確實解決了我的問題... – jompi

+0

注意到rgettman的評論太晚了。謝謝你的姿態。 –

+0

你知道我怎麼能「碰」一個問題嗎? 我問了一個問題,我沒有看到任何動作:( – jompi