Содержание
Ниже приведен фрагмент кода,
Но я получаю пустой вывод.
Я получу 1 в качестве вывода.
Может кто-нибудь объяснить это? И если я хочу преобразовать int в char, как в первом фрагменте, что мне делать?
распечатает char с помощью значения ascii 1 (начало заголовка char, которое невозможно распечатать).
распечатает char с значением ascii 49 (один соответствует "1" )
Если вы хотите преобразовать цифру (0-9), вы можете добавить 48 к ней и произнести, или что-то вроде Character.forDigit(a, 10); .
Если вы хотите преобразовать int , как в значение ascii, вы можете использовать Character.toChars(48) , например.
Мой ответ похож на ответ jh314, но я объясню немного глубже.
Что вы должны сделать в этом случае:
Здесь мы использовали ‘0’, потому что символы на самом деле представлены значениями ASCII. "0" — это символ, представленный значением 48.
Мы набрали (a + ‘0’) и, чтобы сложить их, Java преобразовала ‘0’ в его значение ASCII, которое равно 48, а a равно 1, поэтому сумма равна 49. Затем мы сделали следующее:
Мы бросили int на char . ASCII, эквивалентный 49, равен "1". Вы можете преобразовать любую цифру в символ таким образом, и это будет умнее и лучше, чем использование метода .toString() а затем вычитает цифру методом .charAt() .
Кажется, что вы ищете метод Character.forDigit :
Существует также метод, который может конвертировать из char обратно в int:
Обратите внимание, что, изменяя RADIX , вы также можете поддерживать шестнадцатеричный (radix 16) и любой радиус до 36 (или Character.MAX_RADIX , как это также известно).
hola, ну, я прошел ту же проблему, но то, что я сделал, было следующим кодом.
При этом вы получите десятичное значение как тип char. Я использовал charAt() с индексом 0, потому что единственное значение в этой строке — "a", и, как вы знаете, позиция "a" в этой строке начинается с 0.
Извините, если мой английский недостаточно объяснен, надеюсь, что это вам поможет.
Никто не ответил на настоящий "вопрос" здесь: вы преобразовываете int в char правильно; в таблице ASCII десятичное значение 01 является "началом заголовка", непечатаемым символом. Попробуйте найти таблицу ASCII и преобразовать значение int между 33 и 7E; что даст вам персонажи, на которые можно смотреть.
Всякий раз, когда вы вводите целое число целых чисел в char, оно возвращает значение ascii этого int (один раз пройдите через таблицу ascii для лучшего понимания)
Если мы говорим о типах классов, а не о примитивах, необходимо сделать следующий трюк:
В ASCII каждый символ имеет свой номер. И char ‘0’ это 48 для десятичного числа, ‘1’ это 49 и так далее. Так что если
В java a char есть int. Ваш первый фрагмент печатает символ, соответствующий значению 1 в схеме кодирования по умолчанию (что, вероятно, является Unicode). Символ Unicode U + 0001 является непечатаемым символом, поэтому вы не видите никакого вывода.
Если вы хотите распечатать символ "1", вы можете посмотреть значение "1" в используемой схеме кодирования. В Unicode это 49 (то же, что и ASCII). Но это будет работать только для цифр 0-9.
Возможно, вам лучше использовать строку, а не char, и использовать встроенный метод toString() Java:
Это будет работать независимо от вашей системной кодировки и будет работать для многозначных чисел.
7 Haim Lvov [2017-09-21 15:12:00]
(Я новичок в программировании на Java)
Я имею, например:
и мне нужно получить число в апострофах, цифра 9 сама. Я попытался сделать следующее,
но это не сработало.
Итак, что мне делать, чтобы получить цифру в апострофе?
java char type-conversion int
5 ответов
30 Решение khelwood [2017-09-21 15:14:00]
Как это бывает, значение ascii/unicode символа ‘9’ на девять больше, чем значение ‘0’ (аналогично для других цифр).
Таким образом, вы можете получить значение int десятичной цифры с использованием вычитания.
10 azro [2017-09-21 15:17:00]
У меня есть char ‘9’ , он сохранит свой код ASCII, поэтому, чтобы получить значение int, у вас есть 2 способа
И это факт, это работает также:
Вы сохраняете код 9 , который соответствует horizontal tab (вы можете видеть при печати как String , bu также можете использовать ее как int как вы видите выше
6 ravi [2017-09-21 15:23:00]
Вы можете использовать статические методы из класса Character, чтобы получить числовое значение из char.
0 Amol Raje [2017-09-21 15:22:00]
Если вы хотите получить ASCII-значение символа или просто преобразовать его в int, вам нужно отбросить из char в int.
Какое литье? Кастинг — это когда мы явно конвертируем из одного типа данных примитива или класса в другой. Вот краткий пример.
В этом примере у нас есть символ (‘a’), и мы передаем его целому числу. Печать этого целочисленного значения даст нам значение ASCII ‘a’.
Иногда возникают ситуации, когда имея величину какого-либо определенного типа, необходимо присвоить ее переменной другого типа. С переменными и их типами мы познакомились в прошлом уроке, в этом уроке мы рассмотрим наиболее популярные преобразования типов в Java:
Java преобразование строки в число (STRING to NUMBER)
В следующих примерах будет использована конструкция try-catch. Это необходимо для обработки ошибки, в случае, если строка содержит иные символы кроме чисел или число, выходящее за рамки диапазона допустимых значений определенного типа.
Например, строка «somenumber» не может быть переведена в тип int или в любой другой числовой тип. В это случае, при компеляции возникнет ошибка. Чтобы этого избежать, следует обезопаситься с помощью конструкции try-catch.
String to byte
C использованием конструктора
С использованием метода valueOf класса Byte
С использованием метода parseByte класса Byte
Перевод строки в массив байтов и обратно из массива байтов в строку
String to short
C использованием конструктора
C использованием метода valueOf класса Short
C использованием метода parseShort класса Short
String to int
C использованием конструктора
C использованием метода valueOf класса Integer
C использованием метода parseInt класса Integer
String to long
C использованием конструктора
C использованием метода valueOf класса Long
C использованием метода parseLong класса Long
String to float
С использованием конструктора
C использованием метода valueOf класса Float
C использованием метода parseFloat класса Float
String to double
С использованием конструктора
C использованием метода valueOf класса Double
C использованием метода parseDouble класса Double
String to boolean
Преобразование строки в логический тип 2мя способами. Обратите внимание, что строка не соответствующая true, будет преобразована в логическое значение false.