Вы получите 49, 50, 51 и т. Д. - это кодовые точки Unicode для символов «1», «2», «3» и т. Д.
Если вы знаете , что это будут западные цифры, вы можете просто вычесть '0':
int indiv1 = nric.charAt(1) - '0';
Однако вы должны делать это только после того, как уже проверили в другом месте, что строка имеет правильный формат - в противном случае вы получите ложные данные - например, «A» в конечном итоге вернет 17 вместо ошибка.
Конечно, один из вариантов - взять значения, а затем проверить, что результаты находятся в диапазоне 0-9. Альтернативой является использование:
int indiv1 = Character.digit(nric.charAt(1), 10);
Возвращает -1, если символ не является подходящей цифрой.
Я не уверен, что этот последний подход будет охватывать незападные цифры - первый, конечно, не будет - но, похоже, это не будет проблемой в вашем случае.