Этот пост был первоначально опубликован на Этот пост был первоначально опубликован на .
В отличие от 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”