`

JAVA数据类型间的相互转换 20090812(jsp+servlet+access)Topjoy

阅读更多
http://sea-zhang.iteye.com/blog/361640
http://hi.baidu.com/lelio_lelio_ko/blog/item/cc9ebc9abb8a60bdc8eaf402.html

一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。
我们知道,Java的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型,Java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,我们还经常用到两种类变量,即String和Date。对于这些变量类型之间的相互转换在我们编程中经常要用到,在下面的论述中,我们将阐述如何实现这些转换。
1 数据类型转换的种类
java数据类型的转换一般分三种,分别是:
(1). 简单数据类型之间的转换
(2). 字符串与其它数据类型的转换
(3). 其它实用数据类型转换
下面我们对这三种类型转换分别进行论述。
2 简单数据类型之间的转换
在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为


(byte,short,char)--int--long--float--double

简单数据类型之间的转换又可以分为:
●低级到高级的自动类型转换
●高级到低级的强制类型转换
●包装类过渡类型能够转换
2.1自动类型转换
低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:

-------------------------------------------------------------------------------

byte b;
int i=b;
long l=b;
float f=b;
double d=b;

--------------------------------------------------------------------------------


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

--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------


输出:output:99;
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。

--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------


输出:output:c;
但根据笔者的经验,byte,short,int三种类型都是整型,因此如果操作整型数据时,最好统一使用int型。
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本身就是类。所以也就不存在什么包装类的概念了。
在进行简单数据类型之间的转换(自动转换或强制转换)时,我们总是可以利用包装类进行中间过渡。
一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。例如:
例1,当希望把float型转换为double型时:

--------------------------------------------------------------------------------

float f1=100.00f;
Float F1=new float(f1);
Double d1=F1.doubleValue();
//F1.doubleValue()为Float类的返回double值型的方法

--------------------------------------------------------------------------------


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

--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------


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

--------------------------------------------------------------------------------

int i1=200;
double d1=i1;

--------------------------------------------------------------------------------


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

3 字符串型与其它数据类型的转换
通过查阅类库中各个类提供的成员方法可以看到,几乎从java.lang.Object类派生的所有类提供了toString()方法,即将该类转换为字符串。例如:Characrer,Integer,Float,Double,Boolean,Short等类的toString()方法toString()方法用于将字符、整数、浮点数、双精度数、逻辑数、短整型等类转换为字符串。如下所示:

--------------------------------------------------------------------------------

int i1=10;float f1=3.14f;
double d1=3.1415926;
Integer I1=new Integer(i1);
//生成Integer类Float
F1=new Float(f1);
//生成Float类
Double D1=new Double(d1);
//生成Double类
//分别调用包装类的toString()方法转换为字符串
String si1=I1.toString();
String sf1=F1.toString();
String sd1=D1.toString();
Sysytem.out.println("si1"+si1);Sysytem.out.println("sf1"+sf1);Sysytem.out.println("sd1"+sd1);

--------------------------------------------------------------------------------


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

5、Date类与其它数据类型的相互转换
整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式:
Date(int year, int month, int date):以int型表示年、月、日
Date(int year, int month, int date, int hrs, int min):以int型表示年、月、日、时、分
Date(int year, int month, int date, int hrs, int min, int sec):以int型表示年、月、日、时、分、秒
在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。对于这种对应关系,Date类也有其相应的构造函数:Date(long date)
获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear()、getMonth()、getDate()、getHours()、getMinutes()、getSeconds()、getDay()方法,你也可以将其理解为将Date类转换成int。
而Date类的getTime()方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一样,Date类也有一个toString()方法可以将其转换为String类。
有时我们希望得到Date的特定格式,例如20020324,我们可以使用以下方法,首先在文件开始引入,

--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------


结束语:
当然,笔者的论述只是一人之见,如果希望更多了解有关JAVA数据类型转换的知识,笔者建议参考JAVA类库java.util.*下面的
Integer类
Boolean类
Character类
Float类
Double类
String类
Date类
根据自己的需要,参考不同类的各种成员方法进行数据类型之间的转换。

http://www.java-cn.com/club/html/47/n-5347.html

分享到:
评论

相关推荐

    [code]20090812(jsp+servlet+access)Topjoy 写一网站的流程

    NULL 博文链接:https://ap0406708.iteye.com/blog/446612

    umpc-ubuntu:UMPC的脚本,例如GPD Pocket,Pocket 2,MicroPC和TopJoy Falcon

    "umpc-ubuntu"项目就是为了解决这些问题,提供一套定制化的脚本来优化UMPC设备的用户体验,比如GPD Pocket、Pocket 2、MicroPC和TopJoy Falcon等热门UMPC型号。 该项目的核心目标是优化Ubuntu系统,使其在UMPC上...

    ubuntu64位 系统安装指纹识别软件

    在Ubuntu 64位系统中安装指纹识别软件的过程涉及到几个关键步骤和技术要点。...以下是一份详尽的指南,涵盖了安装指纹识别驱动和软件的相关知识点: 1. **硬件检测**:首先,确保你的笔记本配备了兼容Ubuntu的指纹识别...

    上市公司企业澄清公告数据(2001-2023年) .xlsx

    详细介绍及样例数据:https://blog.csdn.net/li514006030/article/details/143896457

    (源码)基于Java和MySQL的物联网环境监测系统.zip

    # 基于Java和MySQL的物联网环境监测系统 ## 项目简介 本项目是一个基于Java和MySQL的物联网环境监测系统,旨在通过采集、存储和分析环境数据,实现对环境的实时监测和管理。系统涵盖了数据采集、数据存储、数据发送、数据接收、数据备份和日志记录等多个模块,确保数据的完整性和系统的稳定性。 ## 项目的主要特性和功能 1. 数据采集模块 从指定的数据文件(如radwtmp)中读取原始数据,并将其封装成Environment对象。 将多个Environment对象存储到集合中,便于后续处理。 2. 数据存储模块 创建数据库表结构,用于存储环境数据。 将采集到的环境数据批量存储到MySQL数据库中,支持批量处理以优化性能。 3. 网络模块 客户端调用采集模块获取数据,并将数据发送至服务器。 服务器端接收客户端发送的数据,并调用存储模块将数据存入数据库。支持多线程处理,提高并发性能。

    中国2002-2021年31省份经济韧性测度三级指标数据【重磅,更新!】

    1、资源内容地址:https://blog.csdn.net/abc6838/article/details/143895777 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理

    TMS WEB Core v2.0.5.0 for Delphi 11 (D11.1) 下载

    TMS WEB Core v2.0.5.0 for Delphi 11 (D11.1) 下载仓库 简介 本仓库提供 TMS WEB Core v2.0.5.0 for Delphi 11 (D11.1) 的资源文件下载。TMS WEB Core 是一个强大的工具,专为 Delphi 开发者设计,帮助他们轻松构建现代化的 Web 应用程序。 资源文件信息 标题: TMS-WEB-Core-v2.0.5.0-for-Delphi-11-D11.1 描述: TMS_WEB_Core_v2.0.5.0_for_Delphi_11_D11.1 使用说明 下载资源文件: 点击仓库中的资源文件进行下载。 安装: 按照 TMS WEB Core 的官方安装指南进行安装。 开发: 使用 Delphi 11 进行 Web 应用程序的开发。 注意事项 请确保您已经安装了 Delphi 11 (D11.1) 版本。 在安装和使用过程中,请参考 TMS WEB Core 的官方文档以获取更多帮助。 联系我们 如果您在使用过程中遇到任何问题或有任何建议,请通过以下方式联系我们: 邮箱: support@exa

    PyCharm安装与基本配置指导

    内容概要:本文档是一份详细的PyCharm安装与基本配置教程,旨在帮助初学者轻松掌握从下载安装到运行首个Python程序的所有步骤。内容覆盖PyCharm的选择与下载、安装路径设定、环境变量配置以及首次启动后的各项重要设置,如主题更换、汉化、安装插件增强体验等,最后还简述了如何运行第一个程序。同时提供了丰富的配图辅助理解和操作。 适合人群:面向编程新手特别是对Python感兴趣的学习者。对于有一定Python基础但缺乏高效IDE使用经验的研发人员也有一定借鉴意义。 使用场景及目标:①快速熟悉PyCharm IDE的基本操作与环境搭建流程;②优化编码体验,学会利用插件提升效率;③为深入Python编程学习打下坚实的基础。 阅读建议:按照步骤执行操作时注意对比教程提供的图片与实际界面是否一致,如有疑问可参照文档给出的具体链接进一步探索相关资料。此外,虽然本文档主要针对PyCharm的社区版,高级用户也可以将其作为官方文档的补充参考材料。

    SQL 学习教程(入门到实践)

    本教程从基础开始,介绍了 SQL 的语法和常用操作,包括创建表、查询数据、更新与删除、聚合与连接查询,以及数据库完整性和索引。通过提供学习资源和练习任务,帮助您快速掌握 SQL 的核心技能,为数据库管理和数据分析奠定基础。

    人工智能开发项目深度学习项目源码带指导视频服饰关键点定位

    人工智能开发项目深度学习项目源码带指导视频服饰关键点定位提取方式是百度网盘分享地址

    vncviewer.exe

    vncviewer.exe

    java毕设项目之基于Java的校园消费点评系统(源码+说明文档+mysql).zip

    环境说明:开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器。 项目经过测试均可完美运行

    人工智能开发项目深度学习项目源码带指导视频令人拍案叫绝的WGAN

    人工智能开发项目深度学习项目源码带指导视频令人拍案叫绝的WGAN提取方式是百度网盘分享地址

    (源码)基于DevExpress框架的进销存管理系统.zip

    # 基于DevExpress框架的进销存管理系统 ## 项目简介 进销存管理系统是一个基于CS架构的应用程序,主要用于管理企业的采购、销售、库存等业务流程。系统采用DevExpress插件进行界面设计和数据展示,提供了丰富的功能模块,包括采购管理、供应商管理、销售管理、库存管理、客户管理、系统用户管理和商品管理。 ## 项目的主要特性和功能 1. 采购管理管理企业的采购订单,跟踪采购流程。 2. 供应商管理维护和管理供应商信息,包括供应商的详细资料和历史交易记录。 3. 销售管理管理销售订单,跟踪销售流程和客户需求。 4. 库存管理实时监控库存情况,管理库存的进出和调拨。 5. 客户管理维护和管理客户信息,包括客户的详细资料和历史交易记录。 6. 系统用户管理管理系统的用户账号和权限,确保系统的安全性和稳定性。 7. 商品管理管理商品信息,包括商品的详细资料和库存情况。 ## 安装使用步骤 ### 环境准备

    (源码)基于C语言和C++的简单网站留言评论系统.zip

    # 基于C语言和C++的简单网站留言评论系统 ## 项目简介 这是一个基于C语言和C++的简单网站留言评论系统,旨在通过学习和实践计算机入门到进阶的知识,实现一个功能完善的网站评论系统。项目分为初稿和中稿两部分,初稿使用C语言实现,中稿则在初稿的基础上,将编程语言切换到C++,并利用第三方库进行功能优化。 ## 项目的主要特性和功能 1. 前端界面通过HTML和CSS实现简洁的网页界面,用户可以浏览评论、发表新评论和查看回复。 2. JavaScript事件监听使用JavaScript监听用户的前端操作,如发表评论、点赞等,并向后端发送请求。 3. 后端处理使用C语言和C++编写服务器进程,处理前端请求,与数据库进行交互,并返回结果。 4. 数据库操作通过MySQL数据库存储评论数据,包括评论内容、评论回复等。 5. 多线程处理服务器进程使用多线程模式处理多个客户端的请求,提高处理效率。

    基于springboot的校园失物招领系统源码数据库文档.zip

    基于springboot的校园失物招领系统源码数据库文档.zip

    C# 学习教程(入门到实践)

    本教程涵盖了 C# 的基础语法、类与对象、继承与接口、文件操作、以及异步编程,通过实用示例和练习帮助您快速入门。C# 的强大功能和广泛应用,使其成为开发 Windows 应用程序、游戏(如 Unity)、Web API 和云服务的理想选择。

    《Linux操作系统实用教程(第2版)》- 配套软件

    《Linux 操作系统实用教程(第 2 版)》这本书是一本非常实用的书籍,它为读者提供了关于 Linux 操作系统的深入讲解和实用教程。在这本书中,读者可以学习到 Linux 操作系统的基本概念、命令行操作、文件系统管理、用户管理、进程管理等方面的知识。同时,这本书还提供了丰富的配套软件,这些软件可以帮助读者更好地学习和使用 Linux 操作系统。例如,书中可能会介绍一些常用的文本编辑器、编译器、调试器等软件,这些软件可以帮助读者在 Linux 环境下进行编程和开发。此外,书中还可能会介绍一些系统管理工具、网络工具等软件,这些软件可以帮助读者更好地管理和维护 Linux 系统。总之,《Linux 操作系统实用教程(第 2 版)——配套软件》是一本非常值得一读的书籍,它可以帮助读者更好地了解和掌握 Linux 操作系统。

    springboot286入校申报审批系统的设计与实现.zip

    论文描述:该论文研究了某一特定领域的问题,并提出了新的解决方案。论文首先对问题进行了详细的分析和理解,并对已有的研究成果进行了综述。然后,论文提出了一种全新的解决方案,包括算法、模型或方法。在整个研究过程中,论文使用了合适的实验设计和数据集,并进行了充分的实验验证。最后,论文对解决方案的性能进行了全面的评估和分析,并提出了进一步的研究方向。 源码内容描述:该源码实现了论文中提出的新的解决方案。源码中包含了算法、模型或方法的具体实现代码,以及相关的数据预处理、实验设计和性能评估代码。源码中还包括了合适的注释和文档,以方便其他研究者理解和使用。源码的实现应该具有可读性、可维护性和高效性,并能够复现论文中的实验结果。此外,源码还应该尽可能具有通用性,以便在其他类似问题上进行进一步的应用和扩展。

    基于springboot高校学术交流平台源码数据库文档.zip

    基于springboot高校学术交流平台源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics