当前位置:首页 > 全部子站 > IT > 思科认证

关于java基本数据类型之间的转换

来源:长理培训发布时间:2017-12-23 14:38:46

 百度广告

一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。

我们知道,Java的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型,Java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,我们还经常用到两种类变量,即String和Date。对于这些变量类型之间的相互转换在我们编程中经常要用到,在下面的论述中,我们将阐述如何实现这些转换。

1 数据类型转换的种 java数据类型的转换一般分三种,分别是:
(2). 字符串与其它数据类型的转换 
下面我们对这三种类型转换分别进行论述。
2 简单数据类型之间的转换
在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double

简单数据类型之间的转换又可以分为:
●高级到低级的强制类型转换

2.1自动类型转换 低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:

byte b;
long l=b;
double d=b;

如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r

char c='c';
System.out.println("output:" i);

输出:output:99;

short i=99;char c=(char)i;System.out.println("output:" c);

输出:output:c;

2.2强制类型转换  将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。即你必须采用下面这种语句格式:

int i=99;byte b=(byte)i;char c=(char)i;float f=(float)i;

可以想象,这种转换肯定可能会导致溢出或精度的下降,因此笔者并不推荐使用这种转换。


2.3包装类过渡类型转换
在我们讨论其它变量类型之间的相互转换时,我们需要了解一下Java的包装类,所谓包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float和double。而String和Date本身就是类。所以也就不存在什么包装类的概念了。
一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。例如:

float f1=100.00f;
Double d1=F1.doubleValue();

当希望把double型转换为int型时:

double d1=100.00; 
int i1=D1.intValue();

当希望把int型转换为double型时,自动转换:

int i1=200;

简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

3 字符串型与其它数据类型的转换 

int i1=10;
double d1=3.1415926;
//生成Integer类r
//生成Float类r
//生成Double类r
String si1=I1.toString();
String sd1=D1.toString();
Sysytem.out.println("sf1" sf1);

4、将字符型直接做为数值转换为其它数据类型
将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中,实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系,例如,'1'就是指的数值1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch)方法。

5、Date类与其它数据类型的相互转换
Date(int year, int month, int date):以int型表示年、月、日
Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒r
获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。
有时我们希望得到Date的特定格式,例如20020324,我们可以使用以下方法,首先在文件开始引入,

import java.text.SimpleDateFormat;
java.util.Date date = new java.util.Date();/
SimpleDateFormat sy1=new SimpleDateFormat("yyyyMMDD");
//如果希望分开得到年,月,日
SimpleDateFormat sm=new SimpleDateFormat("MM");
String syear=sy.format(date);
String sday=sd.format(date);


在java中除了这些转换之外基本数据类型还可以被隐式的转换成String,例如:

System.out.print(转换 100);//如果在数据前面有字符串用 连接//就会隐式的转换成

String


reportdate_str = "2005-10-01";
reportdate = java.sql.Timestamp.valueOf(reportdate_str);

2.时间型转字符型:

3.将long型转化为String型
String S_APP_UNIT = String.valeOf(APP_UNIT);

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)