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。