Java中的数据类型转换

简介: 本文介绍了 Java 中常见的数据类型转换方法,涵盖字符串与整型、长整型、浮点型、布尔型及日期类型的相互转换,并讲解了可能出现的异常和处理方式。

Java 中流行的数据类型转换的简要指南

与 PHP 或 JavaScript 不同,Java 是一种强类型编程语言。这实质上意味着每个变量都必须使用预定义的数据类型声明,之后不能更改。Java中有两种数据类型:

  • 原始数据类型 - int、double、float、byte、long、boolean 等。
  • 引用数据类型 - Integer、Double、Float、Date、String、Object 等。

在这篇文章中,我将重点介绍原始数据类型的类型转换。

String to Int

有两种方法可用于String转换intInteger.parseInt()返回原语intInteger.valueOf()返回Integer对象。

ini

体验AI代码助手

代码解读

复制代码

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);

String to Long

类似int,我们可以通过方法将 String转换为原始longLong.parseLong()或对象。Long``Long.valueOf()

ini

体验AI代码助手

代码解读

复制代码

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);

String To Float

可以使用floatString转换为基本Float值——parseFloat()Float.valueOf()可用于将String转换为Float对象。

ini

体验AI代码助手

代码解读

复制代码

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);

String to Double

doublefloat数据类型可能看起来相同,但它们存储值的方式不同。float是单精度(32 位或 4 字节)浮点数据类型,double而是双精度(64 位或 8 字节)浮点数据类型。

可以使用doubleString值转换为double值——parseDouble()。类似的,Double valueOf()String转换为Double对象。

ini

体验AI代码助手

代码解读

复制代码

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

如果Stringintfloatdouble转换期间不包含可分析值,则会引发NumberFormatException

ini

体验AI代码助手

代码解读

复制代码

try {
    String exeStr = "14c";
    int exeInt = Integer.parseInt(exeStr);
    System.out.println(exeInt);
} catch (NumberFormatException ex) {
    System.out.println(ex.getMessage());
}

String to Boolean

String可以使用Boolean转换为原始Boolean——parseBoolean()。要转换为Boolean对象,可以使用Boolean valueOf()方法。

ini

体验AI代码助手

代码解读

复制代码

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

String to Date

Java 提供SimpleDateFormat格式化和解析日期的类。有以下两个重要的方法:

  • parse()- 它将String值转换为Date对象
  • format()- 它将Date对象转换为String

在创建SimpleDateFormat类的实例时,需要传递日期和时间模式,告诉实例应该如何解析或格式化日期。

ini

体验AI代码助手

代码解读

复制代码

String dateStr = "10/03/2019";

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date dateObj = format.parse(dateStr);
System.out.println(dateObj);

在上面的示例中,我使用dd/MM/yyyy模式来解析10/03/2019字符串。dd日,MM,yyyy年。下面列出了SimpleDateFormat列表。

LETTER DESCRIPTION EXAMPLES
y Year 2019, 19
M Month in year March, Mar, 03, 3
d Day in month 1-31
E Date name in a week Friday-Sunday
a Am/pm marker AM, PM
H Hour in day 0-23
h An hour in am/pm 1-12
m Minute in hour 0-59
s Second in minute 0-59
S Millisecond in second 0-999
z General timezone Central European Time, PST, GMT +05:00

以下是一些模式示例,以及每种模式如何解析日期的示例:

lua

体验AI代码助手

代码解读

复制代码

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)

## Date to String

SimpleDateFormat还支持将日期格式化为String。下面是一个将日期格式化为String的示例:

ini

体验AI代码助手

代码解读

复制代码

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);

上面的代码片段将显示以下内容:

makefile

体验AI代码助手

代码解读

复制代码

2019年3月10日星期日20:01:22.417 +0500 

## Date to ISO 8601 String

ISO 8601是一个涵盖日期和时间相关数据转换的国际标准。有几种方法可以用 ISO 格式表示日期和时间:

yaml

体验AI代码助手

代码解读

复制代码

2019 -03-30T14 :22: 15 + 05:00
2019 -03-30T09 :22:15Z
20190330T092215Z

在 Java 中将日期对象转换为 ISO 8601 等效字符串示例:

ini

体验AI代码助手

代码解读

复制代码

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 格式的日期和时间模式:

PATTERN ISO DATE FORMAT
yyyy-MM-dd'T'HH:mm:ssXXX 2019-03-30T14:22:15+05:00
yyyy-MM-dd'T'HH:mm:ss'Z' 2019-03-30T09:22:15Z
yyyyMMdd'T'HHmmss'Z' 20190330T092215Z

结论

数据类型转换对于开发人员来说非常常见。大多数这些转换都是微不足道的。但是,字符串到日期的转换有点棘手,尤其是对于初学者,如果未正确指定模式,可能会遇到错误。但是,如果花一些时间记住这些模式,它可能会节省大量时间,同时找出某个转换未编译或执行的原因。


转载来源:https://juejin.cn/post/7159006303950471204

相关文章
|
6天前
|
存储 Java Go
【Java】(3)8种基本数据类型的分析、数据类型转换规则、转义字符的列举
牢记类型转换规则在脑海中将编译和运行两个阶段分开,这是两个不同的阶段,不要弄混!
59 2
|
22天前
|
安全 Java
使用Java多态性进行数据类型转换
以上示范了如何通过多态性来执行安全有效地对于Java对象间相互之间进行正确方式与场合下正确格式与条件限定内对于各个层级关系内部成员及其功能调取与应有操作处理过程,并通过 `instanceof`关键字确保了程序运行期间遵循逻辑合理并符合预设规则条件限定内正常工作流程而无需担忧潜藏风险问题出现可能带来影响结果质量问题情况存在可能。
67 12
|
6天前
|
Java Go 开发工具
【Java】(2)Java数据类型阐述、基本数据类型的占用和范围、二进制的讲述
数据的一种表示形式。十进制表示满十进一原则。二进制表示满二进一原则。例如:十进制例如:二进制计算机在任何情况下都只能识别二进制。
24 0
|
7月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
110 13
|
2月前
|
存储 缓存 算法
Java数据类型与运算符深度解析
本文深入解析Java中容易混淆的基础知识,包括八大基本数据类型(如int、Integer)、自动装箱与拆箱机制,以及运算符(如&与&&)的使用区别。通过代码示例剖析内存布局、取值范围及常见陷阱,帮助开发者写出更高效、健壮的代码,并附有面试高频问题解析,夯实基础。
|
7月前
|
Java C语言 C++
课时9:Java数据类型划分(数据类型划分)
课时9介绍了Java的数据类型划分及其操作。Java数据类型分为基本数据类型和引用数据类型。基本数据类型包括八种:数值型(整形、浮点型)、字符型和布尔型;引用数据类型有数组、类和接口。重点讲解了每种数据类型的默认值、适用场景及选择原则,如整数用int,小数用double,日期时间用Long等。掌握这些内容对编程至关重要。
136 4
课时9:Java数据类型划分(数据类型划分)
|
7月前
|
Java
课时12:Java数据类型划分(字符型)
课时12介绍了Java中的字符型数据(char),包括字符的定义、与int类型的转换及应用。通过范例展示了如何观察字符、编码转换、大小写字母互转、保存中文字符,以及Java中字符处理的灵活性。字符型使用单引号声明,可与int互相转换,支持Unicode编码,能表示任何文字,包括中文。虽然实际开发中直接操作字符型的情况不多,但理解其特性有助于更好地编程。
122 17
|
7月前
|
存储 传感器 缓存
java变量与数据类型:整型、浮点型与字符类型
### Java数据类型全景表简介 本文详细介绍了Java的基本数据类型和引用数据类型,涵盖每种类型的存储空间、默认值、取值范围及使用场景。特别强调了`byte`、`int`、`long`、`float`、`double`等基本类型在不同应用场景中的选择与优化,如文件流处理、金融计算等。引用数据类型部分则解析了`String`、数组、类对象、接口和枚举的内存分配机制。
200 15
|
7月前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、&quot;+&quot;操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
169 9
|
7月前
|
Java
课时13:Java数据类型划分(布尔型)
观察布尔型的操作。布尔是一位数学家的名字,这个布尔发明了两个单词:True、False(一个表示真一个表示假)。一般布尔类型都只表示逻辑的计算结果。
174 9

热门文章

最新文章