Вот моя проблема: я хотел преобразовать char в int из строки, используя следующий код:
String s = "11001";
int charAt2 = (int)s.charAt(2); //Why this gives 48 ???
System.out.println("charAt2 = "+charAtI);
Я попал на терминал: 48. Почему?Это то, что я хотел бы понять.
Я уже нашел отличное решение для моей проблемы с переполнением стека благодаря ссылке dasblinkenlight преобразования типов .Как я думаю, это может быть полезно для кого-то еще, вот исправленная версия, которая отлично работает.Я использую метод Character.digit( char c, int i)
, который дает int от char c
в основании i
, чтобы сделать преобразование.
String s = "11001";
int charAt2 = Character.digit(s.charAt(2), 2); //radix 2 here
System.out.println("charAt2 = "+charAt2);
На терминале: 0. Это работает.