Рубрики
Без рубрики

Преобразования типов данных в Java

Краткое руководство по популярным преобразованиям типов данных в Java. С тегами java, новички, программирование.

Этот пост был первоначально опубликован на Этот пост был первоначально опубликован на .

В отличие от 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”