Этот пост был первоначально опубликован на Этот пост был первоначально опубликован на .
В отличие от PHP или JavaScript, Java является строго типизированным языком программирования. По сути, это означает, что каждая переменная должна быть объявлена с заранее определенным типом данных, который впоследствии не может быть изменен. В Java существует два типа данных:
- Примитивные типы данных – int, double, float, байт, длинный, логический и т.д.
- Ссылочные типы данных – Целочисленные, Двойные, с плавающей точкой, Дата, Строка, Объект и т.д.
В этом уроке мы сосредоточимся на преобразовании типов для примитивных типов данных.
Строка в int
Существует два метода, доступных для преобразования String
в int
: Integer.parseInt()
, который возвращает примитив int
и Integer.valueOf()
которые возвращают Целое число
объект.
String str = "1050"; int inum = Integer.parseInt(str); //return primitive System.out.println(inum); Integer onum = Integer.valueOf(str); //return object System.out.println(onum);
Строка до длинного
Подобно int
, мы можем преобразовать Строку
в примитивное длинное
значение, используя Long.parseLong()
или объект Long
через метод Long.valueOf()
.
String longStr = "1456755"; long ilong = Long.parseLong(longStr); //return primitive System.out.println(ilong); Long olong = Long.valueOf(longStr); //return object System.out.println(olong);
Строка для плавания
Строка
может быть преобразована в примитивное плавающее
значение с помощью метода Float.parseFloat()
. Float.valueOf()
метод может использоваться для преобразования строки
в объект Float
.
String floatStr = "49.78"; float ifloat = Float.parseFloat(floatStr); //return primitive System.out.println(ifloat); Float ofloat = Float.valueOf(floatStr); //return object System.out.println(ofloat);
Строка для удвоения
типы данных double
и float
могут выглядеть одинаково, но различаются способом хранения значения. float
– это тип данных с плавающей запятой одинарной точности (32 бита или 4 байта), в то время как double
– тип данных с плавающей запятой двойной точности (64 бита или 8 байт).
Строковое
значение может быть преобразовано в двойное
значение с помощью метода Double.parseDouble()
. Аналогично, Double.valueOf()
преобразует Строка
в Двойной
объект.
String doubleStr = "99.378"; double idouble = Double.parseDouble(doubleStr); //return primitive System.out.println(idouble); Double odouble = Double.valueOf(doubleStr); //return object System.out.println(odouble);
Исключение NumberFormatException
Если Строка
не содержит анализируемого значения во время int
, float
или двойного
преобразования, возникает исключение NumberFormatException
.
try { String exeStr = "14c"; int exeInt = Integer.parseInt(exeStr); System.out.println(exeInt); } catch (NumberFormatException ex) { System.out.println(ex.getMessage()); }
Строка в логическое значение
Строковое
значение может быть преобразовано в примитивное логическое
значение с помощью метода Boolean.parseboolean
. Для преобразования в Логический
объект вы можете использовать метод Boolean.valueOf()
.
String trueStr = "true"; String falseStr = "false"; String randomStr = "java"; System.out.println(Boolean.parseBoolean(trueStr)); //true System.out.println(Boolean.valueOf(falseStr)); //false System.out.println(Boolean.parseBoolean(randomStr)); //false
Строка на сегодняшний день
Java предоставляет SimpleDateFormat
класс для форматирования и анализа дат. Он имеет следующие два важных метода:
parse()
– ПреобразуетСтроковое
значение вДанные
объектформат()
– Он преобразуетДата
объект вСтроку
значение
При создании экземпляра классов SimpleDateFormat
вам необходимо передать шаблон даты и времени, который указывает, как экземпляр должен анализировать или форматировать даты.
String dateStr = "10/03/2019"; SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); Date dateObj = format.parse(dateStr); System.out.println(dateObj);
В приведенном выше примере я использовал дд/ММ/гггг
шаблон для анализа 10/03/2019
струна. dd
означает две цифры за день, ММ
означает две цифры за месяц и гггг
означает 4 цифры за год. Ниже приведен список наиболее распространенных шаблонов даты и времени, используемых в SimpleDateFormat
. Для получения полного списка, пожалуйста, обратитесь к официальному Явадок .
y | 2019, 19 | Год |
M | Март, 03 марта, 3 | Месяц в году |
d | 1-31 | День в месяце |
E | Пятница-Воскресенье | Название даты в неделе |
a | УТРА, ВЕЧЕРА | Маркер Am/pm |
H | 0-23 | Час в день |
h | 1-12 | Час в am/pm |
m | 0-59 | Минута в час |
s | 0-59 | Секунда в минуте |
S | 0-999 | Миллисекунда в секунду |
z | Центральноевропейское время, PST, GMT +05:00 | Общий часовой пояс |
Ниже приведены некоторые примеры шаблонов с примерами того, как каждый шаблон будет анализировать дату или наоборот:
yyyy/MM/dd <--> (2019/03/09) dd-MM-YYYY <--> (10-03-2019) dd-MMM-yy <--> (13-Feb-19) EEE, MMMM dd, yyy <--> (Fri, March 09, 2019) yyyy-MM-dd HH:mm:ss <--> (2019-02-28 16:45:23) hh:mm:ss a <--> (11:23:36 PM) yyyy-MM-dd HH:mm:ss.SSS Z <--> (2019-01-31 21:05:46.555 +0500)
Дата в строку
Как мы обсуждали выше, SimpleDateFormat
также поддерживает форматирование дат в строки. Вот пример, который форматирует данные в строку:
Date date = Calendar.getInstance().getTime(); // OR new Date() SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, MMMM dd, yyyy HH:mm:ss.SSS Z"); String formatStr = dateFormat.format(date); System.out.println(formatStr);
Приведенный выше фрагмент кода напечатает следующее в зависимости от вашего местоположения:
Sunday, March 10, 2019 20:01:22.417 +0500
Дата вступления в ISO Строка 8601
ISO 8601 является международным стандартом, который охватывает обмен данными, связанными с датой и временем. Существует несколько способов выражения даты и времени в формате ISO:
2019-03-30T14:22:15+05:00 2019-03-30T09:22:15Z 20190330T092215Z
Вот пример преобразования объекта даты в эквивалентную строку ISO 8601 в Java:
TimeZone timeZone = TimeZone.getTimeZone("UTC"); SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); isoFormat.setTimeZone(timeZone); String isoFormatStr = isoFormat.format(new Date()); System.out.println(isoFormatStr);
Ниже приведены шаблоны даты и времени для формата ISO:
гггг-ММ-дд’Т’Ч:мм:ssxxx | 2019-03-30T14:22:15+05:00 2019-03-30T14:22:15+05:00 |
гггг-ММ-дд’Т’Ч:мм:ссз’ | 2019-03-30T09:22:15Z 2019-03-30T09:22:15Z |
ггггммдд’т’хммсс’з” | 20190330T092215Z 20190330T092215Z |
Исходный код: Загрузите полный исходный код с GitHub доступно по лицензии MIT.
Вывод
Преобразования типов данных очень распространены для разработчика. Большинство из этих преобразований тривиальны и хорошо известны опытному программисту. Однако преобразование строки в дату немного сложно, особенно для начинающих. Вы можете столкнуться с ошибками, если шаблон указан неправильно. Но если вы потратите некоторое время на запоминание этих шаблонов, это может сэкономить много времени при выяснении того, почему определенное преобразование не компилируется или не выполняется.
Я пропустил какое-либо важное преобразование типов в этом руководстве? Присылайте мне твит в любое время, чтобы сообщить мне об этом.
Знак победы Я думаю веб-разработка . напишите о современном JavaScript, Node.js, Пружинный ботинок , и все Подпишитесь на мою рассылку новостей , чтобы получать учебные пособия по веб-разработке и профессиональные советы каждую неделю.
Оригинал: “https://dev.to/attacomsian/data-type-conversions-in-java-5ag6”