StringIndexOutOfBoundsException - 处理中

StringIndexOutOfBoundsException - Processing

我正在尝试构建一个函数,当给定一个字符串和一个起点时,该函数将 return 定界符 (', ') 之前的任何数字。所以如果它被交给 ("45,621,9", 0) 它 returns 45.

这就是我所拥有的,在您到达字符串末尾之前效果很好,然后它会抛出 StringIndexOutOfBoundsExceptionString index out of range: 8

因此,如果我尝试使用 ("45,621,9", 7),我会收到该错误。如何处理字符串结尾并停止循环?我想过使用 null 检查,但由于 char 是原始的我不能。

final char delim = ',';
char dataStorage;

int nextItem (String data, int startFrom) {
  String dataValue = "";
  for (int i = startFrom; i < delim; i++) {
    dataStorage = data.charAt(startFrom);
    if (dataStorage != delim) {
      dataValue = dataValue + dataStorage;
      startFrom ++;
    }
  }
  startFrom++;
  return Integer.parseInt(dataValue);
}

现在,如果我调用 nextItem("45,621,9", 7),我会在应该 return 9 时得到异常,然后停止循环。

请参阅 Jon Skeet 的评论。您的 for 循环不正确。像下面一样更正它并尝试:-

for (int i = startFrom; i < data.length(); i++){
        dataStorage = data.charAt(i);
          if(dataStorage != delim){
              dataValue = dataValue + dataStorage;
              i++;
          }