Replacing String objects with C strings

Try this change:
Serial.print(readString[j], HEX);

Also, add a header and footer:

if(strlen(readString) > 0)
{
Serial.println("Characters read:");
for(int j=0; j < strlen(readString); j++)
{
Serial.print(readString[j], HEX);
Serial.print(" ---> Character ");
Serial.println(j);
}
Serial.println("============");

   readString[0] = '\0';      //clear the array

Good and bad. The problem here is that you are not also resetting i to 0. The name i is terrible. One letter global variables generally are. The name index is a much better choice.