Java charAt正在给我StringIndexOutOfBoundsException异常

Java charAt正在给我StringIndexOutOfBoundsException异常,java,Java,我正在尝试使用CharAt来伪造csv文件。我正在尝试获取逗号的索引,以便找到每个数字的位置 每个字符串中有2个逗号,当我搜索字符时,我得到异常 while ((t= in.readLine()) != null) { // read iun line // extract data

我正在尝试使用CharAt来伪造csv文件。我正在尝试获取逗号的索引,以便找到每个数字的位置

每个字符串中有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";
              }      
为了确保字符串中确实有逗号,我硬编码了它。我还是有例外

                    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";
              }      
这就是你的问题:

p=t.charAt(',')
“,”根据ASCII表相当于44


由于您的字符串少于44个字符,因此您会得到IndexOutOfBoundException。

我认为使用t.indexOf而不是t.charAt',将按照您的方式工作。

好的,但您的问题是什么?您认为charAtint做了什么,为什么这样认为?注意int!你试过调试你的代码吗?并请添加完整的stacktrace。可能与该方法采用错误的参数类型有关。我建议阅读indexOfRead上的Java文档来查找charAt。我误解了这个函数,以为输入是char to serach而不是索引