Перейти к содержимому

Как перевести char в int java

  • автор:

Как преобразовать char в int java

Для преобразования символа char в целое число int в Java можно использовать метод Character.getNumericValue(char ch) из класса Character .

char ch = '5'; int num = Character.getNumericValue(ch); // 5 

Как перевести char в int java

Чтобы привести символ char к целому числу int в Java, можно использовать статический метод getNumericValue() из класса Character . Этот метод возвращает числовое значение символа:

Character.getNumericValue('5'); // 5 Character.getNumericValue('0'); // 0 

Буквы A-Z будут иметь числовое значение от 10 до 35

Character.getNumericValue('a'); // 10 

Если символ не имеет числового представления, вернется -1

Character.getNumericValue('?'); // -1 

Как перевести char в int, без изменения кодировки. Работа с StringBuffer

Задача моего метода- преобразовать каждое число типа StringBuffer в массив int. При попытке преобразовать каждый символ «9 8 7 6 5 4 3 2 1 » с убранными пробелами я получаю результат: <57,56,55,54,53,52,51,50,49>Как мне поместить в массив те же числа, что и в строке?

public static void main(String[] args) < StringBuffer strB = new StringBuffer("9 8 7 6 5 4 3 2 1 "); int arrInt=strBToArrInt(strB); for(int i=0;i>//end main int[] strBToArrInt(StringBuffer strBuff) < strBuff = new StringBuffer(strBuff.toString().replace(" ", "")); int[] arrInt =new int[strBuff.length()]; for (int i = 0; i < arrInt.length; i++) < arrInt[i]= Integer.valueOf(strBuff.charAt(0));//Я думаю -проблемма в кодировке. strBuff.deleteCharAt(0);//удаляю нулевой символ >return arrInt; >//end strBToArrInt 

Отслеживать

67.9k 216 216 золотых знаков 77 77 серебряных знаков 219 219 бронзовых знаков

Как преобразовать массив char в массив int?

Есть массив char K
char K[99];
который «вынимает» числа из файла(учитывая то что в файле может быть и меньше чем 100 чисел), но, у меня есть ещё один массив, который состоит из цифр от 0 до 9. Задание в том что-бы сравнить эти массивы, и выяснить какого числа нет в массиве K. Пока-что просто заменяю одинаковые цифры на 10. И потом при выводе через if проверяю, что если 10 не выводить и наоборот.(тут всё понятно)
Но так как char это символы, а int числа все складывается не так как хотелось бы. Попробовал сделать так, но всё четно:

for(int x = 0; x < 10; x++) < for (int i = 0; i < 100; i++) < if(L[x] == int(K[i])) < L[x] = 10; >> >

Как мне решить такую вот проблему?

  • Вопрос задан более трёх лет назад
  • 4063 просмотра

1 комментарий

Простой 1 комментарий

Почему некоторые новички пишут вопросы на каком-то инопланетном языке? Вроде буквы знакомые, но ни хрена не понятно.

Решения вопроса 0
Ответы на вопрос 2
sergio_nsk @sergio_nsk
1. char K[100];
2. if(L[x] + ‘0’ == int(K[i]))
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Developer, ex-admin

1. Если что char — это целый тип, можно напрямую, без явного приведения типов сравнивать с int.
В вашем случае в нем хранится не символ, а ASCII код символа, т.е. просто целое число. Но с тем же успехом можно туда записать любое другое число входящее в диапазон возможных значений:
char c = 10;
2. Приведение типов в стиле Си выглядит так: (int)K[i]
3. Для преобразования ASCII кода в число используйте вариант, предложенный sergio_nsk
или так K[i] — ‘0’
или можно массиву L присваивать непосредственно коды символов, а не числа от 0-9 (и не важно, что массив int, а не char)
L[0] = ‘0’;
L[1] = ‘1’;
Тогда можно сравнивать без преобразований.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

android

  • Android
  • +2 ещё

Почему FindLibrary выдает 0x0?

  • 1 подписчик
  • вчера
  • 59 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *