Java中的数据类型转换
Ť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.
以下是一些模式示例,其中包含每个模式如何解析日期或反之的示例:
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格式的日期和时间模式:
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中的数据类型转换相关推荐
- java数据类型的转换函数_JAVA中常用数据类型转换函数
JAVA中常用数据类型转换函数: string->byte Byte static byte parseByte(String s) byte->string Byte static St ...
- Java中的基本数据类型转换(自动、强制、提升)
转载自 Java中的基本数据类型转换(自动.强制.提升) 说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数 ...
- C/C++中的数据类型转换
文章目录 1 隐式类型转换 1.1 隐式类型转换的基本概念 1.2 隐式类型转换的发生点 1.3 浮点数赋值给整形数分析 2 C语言中的强制类型转换 3 C++中的强制类型转换 3.1 static_ ...
- WPF中在XAML中实现数据类型转换的两种方法
WPF中在XAML中实现数据类型转换的两种方法 原文:WPF中在XAML中实现数据类型转换的两种方法 熟悉数据绑定的朋友都知道,当我们在Model中获取一个对象的数据,常常需要对其进行数据转换后显示在 ...
- c语言强制转换字符类型,C语言中的数据类型转换问题
C语言中的数据类型转换问题 ● 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128-127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围 ...
- VBA中的数据类型转换
VBA中的数据类型转换 在VBE中打开对象浏览器,按照下图操作: 找到VBA库并输入Conversion(转换)找到该模块,里面提供了数据转换函数. VBA提供了两套内置的数据类型转换函数,第一组 ...
- Java类Demo中存在_Java中的数据类型转换
先来看一个题: Java类Demo中存在方法func0.func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{ float fu ...
- Java基本数据类型的自动转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)...
说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...
- java 自动类型转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)
说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示. 重新温故了下原始数据类型,现在来解释下它们之间的转换关系. 自动类型转换 自 ...
最新文章
- flex版的流程设计器
- java中解决脏读_java并发编程学习之脏读代码示例及处理
- android动画延迟执行,Android 过渡动画框架
- OutOfMemoryError dump memory
- 几何与代数(1)知识框架(出题根据)
- GPU Gems1 - 3 Dawn Demo中的皮肤渲染(Skin in the Dawn Demo)
- div方框弯曲边样式_使用弯曲样式编辑文本
- Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码
- MyEclipse在搭建s2sh时 如何 uninstalled facet
- Qt工作笔记-重写滚轮事件,实现界面的增加、减少(放大、缩小)
- 使用dotenv管理环境变量
- 单片机入门数字电路之边沿触发器
- ui设计是什么:ui设计学什么内容
- uniapp textarea编辑保留空格换行
- 记录webp图像转gif(python webp格式转换)
- java idea打不开的问题修复记录
- Retrofit源码分析笔记(一)
- STC8 单片机低功耗延时方法
- 音频格式详解 CD WAV MP3 WMA MIDI RM RA OGG VOF AAC M4A APE FLAC TAK TTA MV RealAudio AIFF AU
- 苹果MAC电脑OS系统使用Cisco AnyConnect教程
热门文章
- 171003 逆向-Reversing.kr(CSHOP)
- CSS3毛玻璃的几种效果
- Xshell6 提示要继续使用此程序,您必须应用最新的更新或使用新版本
- excel表格末尾添加一行_教你使用Python批量读写excel文件
- 云计算大数据基础知识点
- html如何制作正方体手工图,立体图形手工模型(怎样用卡纸制作正方体、长方体)...
- 基于随机森林、svm、CNN机器学习的风控欺诈识别模型
- 飞控简析-从入门到跑路 第二章PX4的位置控制(1)
- 韩国大面积断网,电信公司KT承认其配置错误,此前甩锅DDoS攻击
- Quantopian 入门系列二 - 流水线 (上)