charAt给了我StringIndexOutOfBoundsException异常

时间:2015-01-31 22:44:28

标签: java

我正在尝试使用CharAt来解析csv文件。我想获得逗号的索引,所以我可以找到每个数字的位置。

每个字符串中都有2个逗号,当我搜索char时,我得到了异常。

为了确保字符串中确实有逗号,我对其进行了硬编码。我仍然是例外。

                    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";
              }      

2 个答案:

答案 0 :(得分:0)

这是你的问题:

p=t.charAt(',')
根据ASCII表,

','相当于44。

由于您的String少于44个字符,因此您将获得IndexOutOfBoundException。

答案 1 :(得分:0)

我认为使用t.indexOf(",")代替t.charAt(',')可以按照您想要的方式运作。