Int to char[]
У меня есть число int count, а я хочу добавить это число как текст в прямоугольник. Но функция требует char[] на вход. Пробовала char(count) — не подходит, ибо нужен не char, а char[]. Пробовала загнать в строку через преобразование — тоже не получилось. Опытные джависты, подскажите как конвертировать число в массив чаров? Спасибо!
Добавлено через 3 минуты
Как обычно — сделала пост и тут же нашла что нужно Вдруг кому нужно:
char[] chars = («» + count).toCharArray();
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Конвернтация char в int
Добрый день! Пытаюсь разобраться с преобразованием типов в Java. Пытаюсь конвертировать полученное.
Ввод char вместо int
Реализовываю потихоньку стек в java. Дело в том, что в стек я могу заносить только int-значения, а.
Перевод переменной int в char
Подскажите пожалуйста как перевести переменную int в char? я в своей программе изначально в int.
java tutorial — ПРЕОБРАЗОВАНИЕ ТИПОВ В JAVA — учебник java — java programming — учиться java — java basics — java for beginners
Иногда возникают ситуации, когда имея величину какого-либо определенного типа, необходимо присвоить ее переменной другого типа. С переменными и их типами мы познакомились в прошлом уроке, в этом уроке мы рассмотрим наиболее популярные преобразования типов в Java:
- Преобразование строки в число
- String to byte
- String to short
- String to int
- String to long
- String to float
- String to double
- String to boolean
- Преобразование числа в строку
- int to String
- double to String
- long to String
- float to String
- Преобразования символа char
- char to String
- char to int
- Преобразования чисел
- int to long
- int to float
- long to int
- double to int
Java преобразование строки в число (STRING to NUMBER)
- В следующих примерах будет использована конструкция try-catch. Это необходимо для обработки ошибки, в случае, если строка содержит иные символы кроме чисел или число, выходящее за рамки диапазона допустимых значений определенного типа.
- Например, строка «somenumber» не может быть переведена в тип int или в любой другой числовой тип. В это случае, при компеляции возникнет ошибка. Чтобы этого избежать, следует обезопаситься с помощью конструкции try-catch.
String to byte
C использованием конструктора
try < Byte b1 = new Byte("10"); System.out.println(b1); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
С использованием метода valueOf класса Byte
String str1 = "111"; try < Byte b2 = Byte.valueOf(str1); System.out.println(b2); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
С использованием метода parseByte класса Byte
byte b = 0; String str2 = "100"; try < b = Byte.parseByte(str2); System.out.println(b); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
Перевод строки в массив байтов и обратно из массива байтов в строку
String str3 = "20150"; byte[] b3 = str3.getBytes(); System.out.println(b3); //массив байтов переводим обратно в строку try < String s = new String(b3, "cp1251"); System.out.println(s); >catch (UnsupportedEncodingException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
String to short
- C использованием конструктора
try < Short s1 = new Short("68"); System.out.println(s1); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
- C использованием метода valueOf класса Short
String str1 = "59"; try < Short s2 = Short.valueOf(str1); System.out.println(s2); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
C использованием метода parseShort класса Short
short s3 = 0; String str2 = "100"; try < s3 = Short.parseShort(str2); System.out.println(s3); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
String to int
C использованием конструктора
try < Integer i1 = new Integer("20349"); System.out.println(i1); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
C использованием метода valueOf класса Integer
String str1 = "1451"; try < Integer i2 = Integer.valueOf(str1); System.out.println(i2); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
C использованием метода parseInt класса Integer
int i3 = 0; String str2 = "102944"; try < i3 = Integer.parseInt(str2); System.out.println(i3); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
String to long
- C использованием конструктора
try < Long l1 = new Long("11111111"); System.out.println(l1); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
C использованием метода valueOf класса Long
String str1 = "222222222"; try < Long l2 = Long.valueOf(str1); System.out.println(l2); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
C использованием метода parseLong класса Long
long l3 = 0; String str2 = "333333333"; try < l3 = Long.parseLong(str2); System.out.println(l3); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
String to float
- С использованием конструктора
try < Float f1 = new Float("123.5"); System.out.println(f1); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
- C использованием метода valueOf класса Float
String str1 = "3.1415"; try < Float f2 = Float.valueOf(str1); System.out.println(f2); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
- C использованием метода parseFloat класса Float
float f3 = 0; String str2 = "36.6"; try < f3 = Float.parseFloat(str2); System.out.println(f3); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
String to double
- С использованием конструктора
try < Double d1 = new Double("4.4e10"); System.out.println(d1); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
- C использованием метода valueOf класса Double
String str1 = "564.6e10"; try < Double d2 = Double.valueOf(str1); System.out.println(d2); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
C использованием метода parseDouble класса Double
double d3 = 0; String str2 = "13.7e10"; try < d3 = Double.parseDouble(str2); System.out.println(d3); >catch (NumberFormatException e)
нажмите кнопку ниже, чтобы скопировать код. — от — java tutorials — команда
Copy Code
String to boolean
- Преобразование строки в логический тип 2мя способами. Обратите внимание, что строка не соответствующая true, будет преобразована в логическое значение false.
String s1 = "True"; String s2 = "yes"; boolean bool1, bool2, boolean1, boolean2; //с использованием метода parseBoolean bool1 = Boolean.parseBoolean(s1); bool2 = Boolean.parseBoolean(s2); System.out.println( bool1 ); System.out.println( bool2 ); //c использованием метода valueOf boolean1 = Boolean.valueOf(s1); boolean2 = Boolean.valueOf(s2); System.out.println( boolean1 ); System.out.println( boolean2 );
Конвертировать int в char в java
Я получу 1 в качестве вывода. Может кто-нибудь объяснить это? И если я хочу преобразовать int в char, как в первом фрагменте, что мне делать?
user2640480 01 авг. 2013, в 06:12
Поделиться
« Преобразовать int в символ? » Может быть, b = (char)(‘0’ + a) но только для 0 <= a <= 9 .
johnchen902 01 авг. 2013, в 03:55
Десятичное значение 01 - непечатный символ; это работает правильно.
apraetor 12 сен. 2016, в 17:29
Поделиться:
10 ответов
int a = 1; char b = (char) a; System.out.println(b);
распечатает char с помощью значения ascii 1 (начало заголовка char, которое невозможно распечатать).
int a = '1'; char b = (char) a; System.out.println(b);
распечатает char с значением ascii 49 (один соответствует «1» )
Если вы хотите преобразовать цифру (0-9), вы можете добавить 48 к ней и произнести, или что-то вроде Character.forDigit(a, 10); .
Если вы хотите преобразовать int , как в значение ascii, вы можете использовать Character.toChars(48) , например.
jh314 01 авг. 2013, в 04:59
Поделиться
System.out.println(‘b’+3); как я могу получить b3 вместо 101 с использованием println? любой другой способ вместо printf?
Asif Mushtaq 10 март 2016, в 14:20
@UnKnown Вы должны сделать это строкой вместо символа, как показано ниже. System.out.println («b» + 3);
Haggra 18 апр. 2016, в 23:52
Character.toChars работает с кодовыми точками Unicode, а не со значениями ASCII. Вы получите то же самое (только для BMP), если просто приведете int к char.
weaknespase 27 окт. 2018, в 12:54
Показать ещё 1 комментарий
Мой ответ похож на ответ jh314, но я объясню немного глубже.
Что вы должны сделать в этом случае:
int a = 1; char b = (char)(a + '0'); System.out.println(b);
Здесь мы использовали ‘0’, потому что символы фактически представлены значениями ASCII. ‘0’ — это char и представлен значением 48.
Мы набрали (a + ‘0’), и для того, чтобы добавить их, Java преобразует «0» в значение ASCII, которое равно 48, а a равно 1, поэтому сумма равна 49. Тогда мы сделали:
(char)(49)
Мы набрали int до char. ASCII эквивалент 49 равен «1». Вы можете преобразовать любую цифру в char таким образом и умнее и лучше, чем использовать метод .toString(), а затем вычитать цифру методом .charAt().
Haggra 04 июнь 2015, в 22:47
Поделиться
Кажется, что вы ищете метод Character.forDigit :
final int RADIX = 10; int i = 4; char ch = Character.forDigit(i, RADIX); System.out.println(ch); // Prints '4'
Существует также метод, который может конвертировать из char обратно в int:
int i2 = Character.digit(ch, RADIX); System.out.println(i2); // Prints '4'
Обратите внимание, что, изменяя RADIX , вы также можете поддерживать шестнадцатеричный (radix 16) и любой радиус до 36 (или Character.MAX_RADIX , как это также известно).
Simon Forsberg 09 окт. 2015, в 07:22
Поделиться
@ProgrammingNub Определите «значение int». . Не хотите ли вы напечатать цифру 4? Или вы хотели бы напечатать Ascii-значение типа int, чтобы 65 печатали A ? Потому что мой ответ здесь печатает ожидаемое поведение для требований этого вопроса. Смотрите ideone.com/09LAFR
Simon Forsberg 05 нояб. 2017, в 21:06
int a = 1; char b = (char) a; System.out.println(b);
hola, ну, я прошел ту же проблему, но то, что я сделал, было следующим кодом.
int a = 1 char b = Integer.toString(a).charAt(0); System.out.println(b);
При этом вы получите десятичное значение как тип char. Я использовал charAt() с индексом 0, потому что единственное значение в этой строке — «a», и, как вы знаете, позиция «a» в этой строке начинается с 0.
Извините, если мой английский недостаточно объяснен, надеюсь, что это вам поможет.
3ryck 21 нояб. 2014, в 05:20
Поделиться
Если мы говорим о типах классов, а не о примитивах, необходимо сделать следующий трюк:
Integer someInt; Character someChar; someChar = (char)Integer.parseInt(String.valueOf(someInt);
matua 16 дек. 2017, в 10:10
Поделиться
Никто не ответил на настоящий «вопрос» здесь: вы преобразовываете int в char правильно; в таблице ASCII десятичное значение 01 является «началом заголовка», непечатаемым символом. Попробуйте найти таблицу ASCII и преобразовать значение int между 33 и 7E; что даст вам персонажи, на которые можно смотреть.
apraetor 12 сен. 2016, в 18:27
Поделиться
если вы хотите печатать символы ascii на основе их ascii-кода и не хотите выходить за рамки этого (например, символы Unicode), вы можете определить свою переменную в виде байта, а затем использовать конвертер (char). то есть:.
public static void main(String[] args)
BTW, код ascii для буквы «A» равен 65
MohS 29 июнь 2017, в 14:53
Поделиться
Всякий раз, когда вы вводите целое число целых чисел в char, оно возвращает значение ascii этого int (один раз пройдите через таблицу ascii для лучшего понимания)
int a=68; char b=(char)a; System.out.println(b);//it will return ascii value of 68 //output- D
ajay verma 29 дек. 2016, в 06:02
Поделиться
В некотором роде . char — это кодовая единица UTF-16. 68 как кодовая единица UTF-16 является единственной кодовой единицей, необходимой для представления кодовой точки Unicode U + 0044 . System.out изменит кодировку текста на кодировку по умолчанию (предположительно соответствующую терминалу / консоли, в которой работает программа). println берет символ и пытается его кодировать. Поскольку char — это полная кодовая точка, он может попробовать. Поскольку U + 0044 является символом почти во всех наборах символов, должен быть успех в доставке его в терминал без разбора. Ничего общего с ASCII.
Tom Blodget 30 дек. 2016, в 00:43
В java a char есть int. Ваш первый фрагмент печатает символ, соответствующий значению 1 в схеме кодирования по умолчанию (что, вероятно, является Unicode). Символ Unicode U + 0001 является непечатаемым символом, поэтому вы не видите никакого вывода.
Если вы хотите распечатать символ «1», вы можете посмотреть значение «1» в используемой схеме кодирования. В Unicode это 49 (то же, что и ASCII). Но это будет работать только для цифр 0-9.
Возможно, вам лучше использовать строку, а не char, и использовать встроенный метод toString() Java:
int a = 1; String b = toString(a); System.out.println(b);
Это будет работать независимо от вашей системной кодировки и будет работать для многозначных чисел.
david25272 01 авг. 2013, в 04:58
Поделиться
Извините, но символ не является целым числом, потому что он состоит из другого числа байтов (быстрое представление о представлении char-int — stackoverflow ). Символ может быть представлен числом, вы правы, но это не целое число.
morels 09 окт. 2015, в 07:00
Кроме того, я думаю, что вы можете найти, что вторая строка должна читать «String b = Integer.toString (a);»
Faulty 05 апр. 2016, в 00:59
Тип данных char хорошо определен в java.lang.Character, а также его отношение к кодовым точкам int и unicode и кодовым единицам.
Ian 25 окт. 2017, в 18:32
Показать ещё 1 комментарий
Если вы хотите преобразовать символ в соответствующее целое число, вы можете сделать что-то вроде этого:
int a = (int) 'a'; char b = (char) a; System.out.println(b);
Это происходит потому, что в ASCII есть некоторые элементы, которые нельзя распечатать в обычном режиме.
Например, числа с 97 по 122 являются целыми числами, соответствующими строчным буквам от a до z.
Raul Londoño Murillo 26 окт. 2016, в 23:36
Поделиться
извините, но вы просто копируете вставленные старые ответы .
Miki 26 окт. 2016, в 23:09
Ещё вопросы
- 0 Как я могу передать свой заводской результат другому контроллеру?
- 0 Mysql динамические переменные против имени столбца
- 1 Проблема оптимизации колонии муравьев
- 0 Ширина сетки не фиксируется
- 0 Предоставление опытным пользователям права на прямой запуск SQL-запросов
- 0 извлекать несуществующую строку как NULL при присоединении
- 1 курсор падает с CursorIndexOutOfBoundsException
- 0 Как считать выбранные строки в SQL
- 1 Gradle, как заменить устаревший ‘variableOutput.getPackageLibrary ()’ на ‘variable.getPackageLibraryProvider ()’?
- 0 Вызовите функцию jquery, когда новый элемент отображается на странице
- 0 Строка C ++, присваивающая значения функции at (int)
- 0 prettyCheckable останавливает проверку jquery от работы в флажках
- 0 Ошибка подтверждения OpenCV для некоторых значений Pixal
- 0 Замените тег другим тегом
- 0 C ++ числа в файле в массив
- 1 Рейтинг мест (Foursquare)
- 1 Repmat в Python v / s MATLAB
- 0 Как изменить свойство CSS id в зависимости от размера экрана
- 1 аккорд d3: текст по центру
- 0 MySQL UPDATE запрос не работает с PHP
- 1 Как я могу двигать изображение медленно?
- 0 Угловой элемент директивы динамический Шаблон с его обновленным значением модели из контроллера?
- 0 Игра встряхивания мыши Javascript не работает должным образом
- 0 Два деления в одной строке
- 0 Базовый калькулятор jQuery
- 1 Транспортир Javascript не выполняется в последовательности
- 0 Размер сайта резко меняется в браузере
- 0 УЧАР * в std :: string
- 1 Почему мои темы не заканчиваются
- 1 Java получить и объединить файл из нескольких потоков
- 1 Wakelock — имя тега должно использовать уникальный префикс, за которым следует двоеточие
- 1 Добавление минут к метке времени в python
- 0 Непоследовательное поведение jQuery each () с необъяснимым исправлением
- 1 Как автоматически нажать кнопку ОК на JOptionPane при тестировании?
- 1 Возвращение массива двойных значений из строки
- 0 Проверка PHP по крайней мере две кнопки выбраны
- 1 Как скрыть значение параметра запроса в URL, используя Spring MVC
- 1 ChartJS — установить другой текст при наведении, чем описание по оси X
- 0 Генерация PDF-файлов в Ionic из pdf-строки, уже сгенерированной на стороне клиента, и сохранение ее на устройстве
- 1 Как создать AWC по умолчанию в AWS через aws-java-sdk
- 0 Как сопоставить результаты SQL из двух списков и вставить новую строку для каждого найденного совпадения?
- 1 Не удается сохранить нового пользователя с Express & Mongoose
- 1 Как переписать двухмерный срез массива с помощью циклов (открытый формат cv)
- 0 Получить внешний HTML и затемнить / задержать полученные элементы
- 1 Проблема создания метки времени (несколько) во время летнего времени
- 1 Поместите карту Java в JSON
- 1 TCP File Transfer — ошибка в нескольких байтах
- 0 Веб-сокет с AngularJS / Asp.net
- 1 Проблемы с акцентами в Java во время выполнения
Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Java преобразовать целое число в строку
Введение Преобразование примитива типа int или соответствующего ему класса оболочки Integer в String — обычная и простая операция. То же самое касается и другого способа преобразования String в Integer [/ java-convert-string-to-integer]. Преобразование целого числа в строку При преобразовании целого числа или целого числа в строку существует четыре подхода. Класс String предоставляет для этой цели несколько методов — valueOf () и format (), хотя уже упомянутый класс Integer также предлагает toString
Время чтения: 4 мин.
Вступление
Преобразование примитива int или соответствующего ему класса оболочки Integer в String — обычная и простая операция. То же самое касается и другого способа преобразования String в Integer .
Преобразование целого числа в строку
При преобразовании int или Integer в String существует четыре подхода. Класс String предоставляет для этой цели несколько методов — valueOf() и format() , хотя уже упомянутый Integer также предлагает toString() который решает эту проблему. Кроме того, вы также можете рассчитывать на StringBuilder «s append() метод, хотя это не часто используется сценарий:
- String.valueOf(int i) — этот подход считается лучшей практикой из-за простоты. Этот метод также принимает другие типы — boolean , char , char[] , double , float , long , Object
- Integer.toString(int i) — этот подход старше, чем valueOf() и просто использует метод, который каждый объект Java должен возвращать String, представляющий данный int. Однако этот подход, в отличие от предыдущего, может возвращать NullPointerException .
- String.format(String format, Object. args) — возвращает строку, отформатированную в соответствии со спецификатором формата и следующими аргументами.
- StringBuilder.append(int i).toString() — То же, что valueOf() метод, этот метод принимает все примитивные типы с добавлением некоторых других типов , таких как String , StringBuffer и CharSequence .
String.valueOf ()
Метод valueOf() — это статический метод класса String, который возвращает строковое представление указанного типа.
Здесь разрешено много типов:
- Объект
- char []
- логический
- символ
- int
- длинный
- плавать
- двойной
Но в этом уроке мы сосредоточимся на int Возвращенное представление точно соответствует представлению, возвращаемому Integer.toString() при передаче того же аргумента:
int i = 12345; String string = String.valueOf(i); String otherString = Integer.toString(i); System.out.println(string.equals(otherString)); System.out.println(string == otherString); System.out.println(string); System.out.println(otherString);
Выполнение этого фрагмента кода даст:
true false 12345 12345
Это имеет смысл, поскольку оба этих метода возвращают новую строку. Метод equals() возвращает true, потому что их значение одинаково, тогда как == возвращает false, поскольку их ссылочные переменные не указывают на один и тот же объект в памяти.
Использование valueOf() обеспечивает согласованность вашего кода при преобразовании одного типа данных в другой. В случае valueOf() также может кэшировать часто используемые числа, например от -127 до 128, чтобы ускорить преобразование и уменьшить объем памяти.
По этой причине рекомендуется использовать метод valueOf() для преобразования как String, так и Integer.
Integer.toString ()
В этом подходе используется один из наиболее распространенных методов Java — toString() общий для всех объектов.
Этот метод имеет множество применений и требует подробного объяснения. Если вы хотите узнать об этом больше, у нас уже есть отличная статья, посвященная этому вопросу!
В этом случае метод возвращает объект String, представляющий указанный int. Аргумент преобразуется в десятичное представление со знаком и возвращается как строка:
int i = 12345; String string = Integer.toString(i); String otherString = new Integer(i).toString(); System.out.println(string.equals(otherString)); System.out.println(string == otherString); System.out.println(string); System.out.println(otherString);
Выполнение этого фрагмента кода даст:
true false 12345 12345
Если ваша переменная имеет примитивный тип (int), лучше использовать Integer.toString(int) или String.valueOf(int) . Но если ваша переменная уже является экземпляром Integer (класс-оболочка примитивного типа int), лучше просто вызвать его toString() как показано выше.
String.format ()
Возвращает строку, отформатированную в соответствии со спецификатором формата и следующими аргументами. Хотя цель этого метода не столько в преобразовании, сколько в форматировании String, его также можно использовать для преобразования.
Есть довольно много спецификаторов на выбор:
- %a — шестнадцатеричный вывод числа с плавающей запятой
- %b — истина, если не ноль, ложь, если ноль
- %c — символ Юникода
- %d — десятичное целое число
- %e — научная запись десятичного целого числа
- %f — десятичное число с плавающей запятой
- %g — То же, что и выше, но возможно научное, в зависимости от значения
- %h — шестнадцатеричная строка возвращаемого значения hashCode ()
- %n — разделитель строк
- %o — восьмеричное целое число
- %s — Строка
- %t — преобразование даты / времени
- %x — шестнадцатеричная строка
В этом уроке мы сосредоточимся на %d
int i = 12345; String string = String.format("%d", i); System.out.println(string);
Выполнение этого фрагмента кода даст:
12345
Метод format() генерирует IllegalFormatConversionException если вы передаете несовместимый тип, например, передаете Integer для спецификатора %s , который ожидает объект String.
Некоторые из наиболее распространенных спецификаторов: %s для строки, %d для десятичного целого числа и %n .
StringBuilder и StringBuffer
И StringBuffer и StringBuilder — это классы, используемые для объединения нескольких значений в одну строку.
StringBuffer является потокобезопасным, но медленнее, тогда как StringBuilder не является потокобезопасным, но работает быстрее.
int i = 12345; String string = new StringBuilder().append(i).toString(); String otherString = new StringBuffer().append(i).toString(); System.out.println(string.equals(otherString)); System.out.println(string == otherString); System.out.println(string); System.out.println(otherString);
Выполнение этого фрагмента кода даст:
true false 12345 12345
Заключение
Мы рассмотрели одну из фундаментальных тем Java и общую проблему, с которой сталкиваются разработчики — преобразование int или Integer в String с помощью инструментов, поставляемых с JDK.
Licensed under CC BY-NC-SA 4.0
