java - Switch statement inside for loop does not increment "i" correctly -


i have following code:

string = sb.tostring(); //stores data input file string string replaceall = everything.replaceall("\\s", ""); int charcount = replaceall.length(); //charcount 147 char arr[] = replaceall.tochararray(); (int = 0; < arr.length; i++) {     switch (arr[i]) {         case 'e': {             fridge[character.getnumericvalue(arr[(i + 1)])].is_empty();         }         break;         case 'f': {             fridge[character.getnumericvalue(arr[(i + 2)])].find_it(character.getnumericvalue(arr[(i + 1)]));         }         break;         case 'c': {             fridge[character.getnumericvalue(arr[(i + 3)])].combinefridge(fridge[character.getnumericvalue(arr[(i + 2)])], fridge[character                                                                                                                                           .getnumericvalue(arr[(i + 1)])]);         }         break;         case 'm': {             fridge[character.getnumericvalue(arr[(i + 3)])].commonitems(fridge[character.getnumericvalue(arr[(i + 2)])], fridge[character                                                                                                                                         .getnumericvalue(arr[(i + 1)])]);         }         break;         case 'i': {             fridge[character.getnumericvalue(arr[(i + 2)])].insertitem(character.getnumericvalue((i + 1)));         }         break;         case 'd': {             fridge[character.getnumericvalue(arr[(i + 2)])].delete_item(character.getnumericvalue((i + 1)));         }         break;         case 'o': {             fridge[character.getnumericvalue(arr[(i + 1)])].outputrefrigerator();         }         break;      } } 

the char array has 147 elements, , there's number after each letter. each letter activates method, followed 1-3 parameters (numbers). however, inside loop, getting -1 value , random large numbers (all numbers positive , less 12).

if manually call method outside loop example: fridge[character.getnumericvalue(arr[0].insertitem(character.getnumericvalue(arr[1]);, works fine , value @ arr[1] (which 1) stored @ this.fridgeitems (an int[] array).

why happening? know it's problem either switch statement or loop can't tell.

check indices. in code accessing elements arr i + 1 , i + 2 index. if loop iterates more n - 2 times, have indexoutofboundexception.

by way, need increment i in switch statement skip "used" characters input array.


Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -