Мне кажется, вы хотите определить индекс bucket
(от 0 до 9), основываясь на последней цифре числа temp
. Вместо того, чтобы идти в обход String
/ charAt
/ getNumericValue()
, вы можете просто использовать оператор «деления покоя» Java:
int dval = temp % 10;
или обобщенно (если вы не хотите придерживаться ровно 10 ведер):
int dval = temp % bucket.length;
Просто убедитесь, что temp
не становится отрицательным, так как тогда остаток деления также становится отрицательным :-(. Помимо того, что он короче и менее подвержен ошибкам, подход деления-остатка также намного быстрее.