java数据类型转换【转载】

JavaJava 中如何进行数据类型的强制转换 Java 中,如果你需要将一个对象转换为具体的原始数据类型,你可以使用类型转换。- 某些类型之间不能直接进行强制类型转换,例如,不能直接将一个 int 转换float,除非使用 `(float)` 进行强制转换。例如,将一个 double 值转换为 int 值,小数点后的数值将被丢弃。- 如果尝试将一个 null 值转换为对象类型,将抛出 `NullPointerException`。// 强制将 int 类型转换为 double 类型。// 强制将 double 类型转换为 int 类型。 阅读详情


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

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

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

   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类/rFloat F1=new Float(f1); //生成Float类/rDouble D1=new Double(d1); //生成Double类/r//分别调用包装类的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);

五、将字符型直接做为数值转换为其它数据类型
将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中,实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系,例如,'1'就是指的数值1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch)方法。
六、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型表示年、月、日、时、分、秒/r
在长整型和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类/r
Boolean类/r
Character类/r
Float类/r
Double类/r
String类/r
Date类
根据自己的需要,参考不同类的各种成员方法进行数据类型之间的转换。
大家可以参考JAVA的网上类库或下载一份,来更灵活的利用其中的成员方法进行数据类型之间的转换,IP地址:
http://java.sun.com/j2se/1.3/docs/api/index.html

java数据类型转换详解 Java数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型Java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,我们还经常用到两种类变量,即StringDate。对于这些变量类型之间的相互转换在我们编程中经 阅读详情

相关推荐

Java基础】Java数据类型、常量、变量和数据类型转换

Java数据类型分为两大种:基本数据类型和引用数据类型。这里用一个图来表示: Java的基本数据类型,有四类八种 其中浮点型数据包括单精度浮点型(float)和双精度浮点型(double),代表有小数精度要求的数字。 Java默认的浮点型为double。 例如,11.11 和 1.2345 都是 double 型数值。如果要说明一个 float 类型数值,就需要在其后追加字母 f 或 F,如 11.11f 和 1.2345F 都是 float 类型的常数。 例如, 1.可以使用如下方式声明 float

wang_qiu_hao的博客 1110

Java——类型转换

类型转换分为和。

Stewie Lee的博客 6130

js中的date对象

Date对象构造函数Date对象构造函数new Date() new Date(milliseconds) new Date(datestring) new Date(year, month) new Date(year, month, day) new Date(year, month, day, hours) new Date(year, month, day, hours, minutes)

初漾的博客 604

简要JAVA数据类型转换 (转载)

简要JAVA数据类型转换1如何将字串 string 转换成整数 int? a. 有两个方法: 1). int i = integer.parseint([string]); 或 i = integer.parseint([string],[int radix]); 2). int i = integer.valueof(my_str).intvalue(); 注: 字串转成 double, flo

ghfseawindy的专栏 473

sqlserver与java数据类型对应(转载

(转载)http://www.360doc.com/showWeb/0/0/233757.aspx

sybww的专栏 506

(Java) byte[] 和 base64 字符串之间的转换

import org.apache.commons.codec.binary.Base64; public class UtilHelper { //base64字符串转byte[] public static byte[] base64String2ByteFun(String base64Str){ return Base64.de...

weixin_30701575的博客 286

java基础的第二轮快速学习!day02

day021.基本数据类型:4大类整数类型byte-1字节 short-2字节 int-4字节 long-8字节 默认int 字符型char string 布尔类型boolean 浮点类型float double 共计8种2.类型之间的转换: 自动类型转换也叫隐式类型转换--取值小转换大的, 强制类型转换显示--大赋值小类型可能存在精度丢失例:int i=(in...

weixin_30779691的博客 86

List<String>和String相互转换

List<String>转String String Message=""; for (String msg : message) { Message = Message.concat(msg); }    String转List<String> import java.util.ArrayList; import java.util.Li...

weixin_30505751的博客 164

java 数据类型转换

    本博文部分原创,部分转载整理,侵删!仅供学习研究!严禁商用! 不同数据类型一起运算之前是需要进行转换的,有的是自从转换,有的需要手动或者强制。同时,一个数据的表示也意味着可能有多种类型来表示,需要根据实际需要确定我们数据的具体类型。 数据类型转换遵循原则:范围小的数据类型,可以转换成范围大的数据类型。eg:byte转int。范围大的数据类型不可以转换成范围小的数据类型。 jav...

ido1ok的博客 7660

java各种数据类型之间的转换

7/15/2017 3:13:33 PM @Auther Jzedy 基本数据类型转换 Java包括了八种基本数据类型,其中包括六种数字类型(4个整数型,两个浮点型),一个字符类型和布尔型 1. 整型:byte,short,int,long; 2. 浮点型:float,double; 3. 字符型:char; 4. 布尔型:boole...

balan2465的博客 267

Java 基本数据类型 - 四类八种(转载

整理一下脑子里的知识,也算温故知新吧。 一、Java四大数据类型分类 1、整型 byte 、short 、int 、long 2、浮点型 float 、 double 3、字符型 char 4、布尔型 boolean 二、八种基本数据类型 三、数据类型详细介绍 整型(byte、short、int、long) 虽然byte、short、int、long 数据类型都是表示整数的,但是它们的取值范围可不一样。 byte 的取值范围:-128~127(-2...

我有一张床的博客 1307

java数据类型转换代码_简要JAVA数据类型转换

1如何将字串 String 转换成整数 int?A. 有两个方法:1). int i = Integer.parseInt([String]); 或i = Integer.parseInt([String],[int radix]);http://www.gaodaima.com/41257.html简要java数据类型转换2). int i = Integer.valueOf(my_str).i...

weixin_31714129的博客 377

java数据类型转换怎么_java数据类型转换

转载自https://www.cnblogs.com/andy2005/archive/2006/07/24/458564.html1如何将字串 String 转换成整数 int?A. 有两个方法:1). int i = Integer.parseInt([String]); 或i = Integer.parseInt([String],[int radix]);2). int i = Inte...

weixin_31091881的博客 169

java基础数据类型(自动转换、强制转换、提升转换

说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示。 重新温故了下原始数据类型,现在来解释下它们之间的转换关系。 自动类型转换 自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。 如: long l = 100; int i = 200; long ll = i; 具体自动转换如如下图...

第一桶金的博客 463

Java数据类型之间的相互转换

首先有几个原则: 1.byte,short,char变量之间(注意是变量,常量不同)运算时候直接转换成int类型再计算。   如果这些变量与常量做运算就保留原变量的类型,不必转换成int类型再运算。 2.float:    float f3 = 1.23f;//必须加f 3.boolean类型不能强制转换为其它类型 例子: int i1 = 123;          i

u013842976的博客 900

简要JAVA数据类型转换

1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int ra...

csdn785029689的博客 80

java--基本数据类型转换(自动转换

  概念:Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换Java编码中具有重要的作用。首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。   Java数据类型主要分为两大类:基本数据类型和引用数据类型。基本数据类型共有8种,分...

weixin_30319153的博客 258

Java数据类型转换

数据类型转换 java程序中要求参与计算的数据,都要保证数据类型的一致性,如果数据类型不一致将发生类型的转换 byte 类型和int类型计算,会自动进行类型转换int类型 自动转换: 将取值范围小的类型自动提升为取值范...

125
上一篇: 一些不常见的html表格设置【转载】
下一篇: 毕业论文
cugwei
博客等级 码龄22年 2粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值