2015-01-31 53 views
-3

我想用CharAt來分析一個csv文件。我試圖獲得逗號的索引,所以我可以找到每個數字的位置。charAt給我StringIndexOutOfBoundsException異常

每個字符串都有2個逗號,當我搜索字符時,我得到異常。

爲了確保字符串中真的有一個逗號,我硬編碼它。我仍然得到例外。

    while ((t= in.readLine()) != null) 
        { 
         // read iun line 

         // extract data 

         t="45446,45456456,464646"; 
         // EXCEPTION GOES OFF HERE 
         p=t.charAt(','); 



         sTimeStamp=t.substring(0, p-1); 
         t=t.substring(p+1); 

         p=t.charAt(','); 
         sPoint=t.substring(0, p-1); 
         t=t.substring(p+1);       

         p=t.charAt(','); 
         sVol=t.substring(0, p-1); 


         // store data 
        } 

        LoadGraph(reply); 
        System.out.println("finish Read indata");     
        } catch (Exception e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
        return "nn"; 
       }  
+0

好的,但是你的問題到底是什麼? – 2015-01-31 22:47:47

+0

您認爲'charAt(int)'做了什麼,您爲什麼這麼認爲? **注意(int)!** – 2015-01-31 22:47:49

+0

您是否嘗試過調試您的代碼?請添加完整的堆棧跟蹤。 – Jens 2015-01-31 22:47:59

回答

0

我認爲使用t.indexOf(",")而不是t.charAt(',')會以您想要的方式工作。

+0

我誤解了函數thaought輸入是一個字符而不是索引 – 2015-02-01 22:07:51

0

這是你的問題:

p=t.charAt(',') 

'' 是根據ASCII表相當於44。

由於你的字符串少於44個字符,你會得到IndexOutOfBoundException。