Ťhis post was originally published on attacomsian.com/blog.


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

  • 基本数据类型-int,double,float,byte,long,boolean等参考数据类型-整数,双精度,浮点型,日期,字符串,对象等

在本教程中,我们将专注于原始数据类型的类型转换。

String to int

有两种方法可用于串至整型转换:整数.parseInt()它返回一个原语整型和整数.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);

String to long

相近整型,我们可以将串 整型o a primitive 长值使用长.parse长()或物体长通过长.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);

String to float

一种串可以转换为原始浮动值使用浮动.parse浮动()方法。浮动.valueOf()方法可用于转换串变成一个浮动宾语。

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

双和浮动数据类型可能看起来相同,但是它们存储值的方式不同。浮动 is a single precision (32 bit or 4 bytes) 浮动ing point data type whereas 双 is a 双 precision (64 bit or 8 bytes) 浮动ing point data type.

一种串值可以转换为双值使用双.parse双()方法。 同样,双.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

如果串在以下期间不包含可分析的值整型,浮动,or 双 conversion,a NumberFormatException被抛出。

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

String to boolean

一种串值可以转换为原始值布尔值值使用布尔型.parse布尔型方法。 转换为布尔型对象,您可以使用布尔型.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

String to Date

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

  • parse()-转换串值成日期宾语格式()-它转换日期宾语 into a 串值

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

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

In the example above, I used dd/MM/yyyy pattern to parse 10/03/2019 string. dd means two digits for the day, MM means two digit for the month and yyyy means 4 digits for the year. Below is a list of the most common date and time patterns used in SimpleDateFormat. For the complete list, please refer to official JavaDoc.

信件描述例子ÿ年2019,19中号中号ontH in ÿe一种r中号一种rcH, 中号一种r, 03, 3dD一种ÿ in 米ontH1-31Ë星期中的日期名称Frid一种ÿ-小号und一种ÿ一种A米/p米 米一种rkerA中号, P中号HHour in d一种ÿ0-23HHour in 一种米/p米1-12米中号inute in Hour0-59s小号econd in 米inute0-59小号中号illisecond in second0-999žGener一种l ti米ežoneCentr一种l Ëurope一种n Ti米e, P小号T, G中号T +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)

Date to String

如上所述,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

Date to ISO 8601 String

一世SO 8601 is an international standard that covers the exchange of date- and time-related data. There ere several ways to express date and time in ISO format:

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

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

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

图案ISO日期格式yyyy-MM-dd'T'HH:mm:ssXXX2019-03-30T14:22:15 + 05:00yyyy-MM-dd'T'HH:mm:ss'Z'2019-03-30T09:22:15ZyyyyMMdd'T'HHmmss'Z'20190330T092215Z

Source code: Download the complete source code from GitHub available under MIT license.

Conclusion

数据类型转换对于开发人员来说非常普遍。 这些转换大多数都是微不足道的,并且是经验丰富的程序员所熟知的。 但是,字符串到日期的转换有些棘手,特别是对于初学者。 如果未正确指定模式,则可能会遇到错误。 但是,如果您花一些时间记住这些模式,可能会节省大量时间,同时弄清为什么某些编译未编译或执行。

Am I missing any important type conversion in this tutorial? Send me a tweet any time to let me know.


✌️ I write about modern JavaScript, Node.js, Spring Boot, and all things web development. Subscribe to my newsletter to get web development tutorials & protips every week.

from: https://dev.to//attacomsian/data-type-conversions-in-java-5ag6

Java中的数据类型转换相关推荐

  1. java数据类型的转换函数_JAVA中常用数据类型转换函数

    JAVA中常用数据类型转换函数: string->byte Byte static byte parseByte(String s) byte->string Byte static St ...

  2. Java中的基本数据类型转换(自动、强制、提升)

    转载自 Java中的基本数据类型转换(自动.强制.提升) 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数 ...

  3. C/C++中的数据类型转换

    文章目录 1 隐式类型转换 1.1 隐式类型转换的基本概念 1.2 隐式类型转换的发生点 1.3 浮点数赋值给整形数分析 2 C语言中的强制类型转换 3 C++中的强制类型转换 3.1 static_ ...

  4. WPF中在XAML中实现数据类型转换的两种方法

    WPF中在XAML中实现数据类型转换的两种方法 原文:WPF中在XAML中实现数据类型转换的两种方法 熟悉数据绑定的朋友都知道,当我们在Model中获取一个对象的数据,常常需要对其进行数据转换后显示在 ...

  5. c语言强制转换字符类型,C语言中的数据类型转换问题

    C语言中的数据类型转换问题 ● 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128-127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围 ...

  6. VBA中的数据类型转换

    VBA中的数据类型转换  在VBE中打开对象浏览器,按照下图操作: 找到VBA库并输入Conversion(转换)找到该模块,里面提供了数据转换函数.  VBA提供了两套内置的数据类型转换函数,第一组 ...

  7. Java类Demo中存在_Java中的数据类型转换

    先来看一个题: Java类Demo中存在方法func0.func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{ float fu ...

  8. Java基本数据类型的自动转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)...

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...

  9. java 自动类型转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)

    说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...

最新文章

  1. flex版的流程设计器
  2. java中解决脏读_java并发编程学习之脏读代码示例及处理
  3. android动画延迟执行,Android 过渡动画框架
  4. OutOfMemoryError dump memory
  5. 几何与代数(1)知识框架(出题根据)
  6. GPU Gems1 - 3 Dawn Demo中的皮肤渲染(Skin in the Dawn Demo)
  7. div方框弯曲边样式_使用弯曲样式编辑文本
  8. Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码
  9. MyEclipse在搭建s2sh时 如何 uninstalled facet
  10. Qt工作笔记-重写滚轮事件,实现界面的增加、减少(放大、缩小)
  11. 使用dotenv管理环境变量
  12. 单片机入门数字电路之边沿触发器
  13. ui设计是什么:ui设计学什么内容
  14. uniapp textarea编辑保留空格换行
  15. 记录webp图像转gif(python webp格式转换)
  16. java idea打不开的问题修复记录
  17. Retrofit源码分析笔记(一)
  18. STC8 单片机低功耗延时方法
  19. 音频格式详解 CD WAV MP3 WMA MIDI RM RA OGG VOF AAC M4A APE FLAC TAK TTA MV RealAudio AIFF AU
  20. 苹果MAC电脑OS系统使用Cisco AnyConnect教程

热门文章

  1. 171003 逆向-Reversing.kr(CSHOP)
  2. CSS3毛玻璃的几种效果
  3. Xshell6 提示要继续使用此程序,您必须应用最新的更新或使用新版本
  4. excel表格末尾添加一行_教你使用Python批量读写excel文件
  5. 云计算大数据基础知识点
  6. html如何制作正方体手工图,立体图形手工模型(怎样用卡纸制作正方体、长方体)...
  7. 基于随机森林、svm、CNN机器学习的风控欺诈识别模型
  8. 飞控简析-从入门到跑路 第二章PX4的位置控制(1)
  9. 韩国大面积断网,电信公司KT承认其配置错误,此前甩锅DDoS攻击
  10. Quantopian 入门系列二 - 流水线 (上)