zoukankan      html  css  js  c++  java
  • Java高级数据类型转换:包装类、String字符串、Date类等与其他类型转换

    1、包装类过渡类型转换

    一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。例如:

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

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

    简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)

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

    2、字符串与其它类型间的转换

    其它类型向字符串的转换

    •  调用类的串转换方法:X.toString();
    •  自动转换:X+"";
    •  使用String的方法:String.valueOf(X);

    3、字符串作为值,向其它类型的转换

    1)先转换成相应的封装器实例,再调用对应的方法转换成其它类型

    例如,字符中"32.1"转换double型的值的格式为:new Float("32.1").doubleValue()。也可以用:Double.valueOf("32.1").doubleValue()

    2)静态parseXXX方法

    String s = "1";
    byte b = Byte.parseByte( s );
    short t = Short.parseShort( s );
    int i = Integer.parseInt( s );
    long l = Long.parseLong( s );
    Float f = Float.parseFloat( s );
    Double d = Double.parseDouble( s );

    3)Character的getNumericValue(char ch)方法

    4、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;
    
    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);

    总结:

    1、只有 boolean 不参与数据类型的转换

    2、自动类型的转换:

    •  a.常数在表数范围内是能够自动类型转换的
    •  b.数据范围小的能够自动数据类型大的转换(注意特例)
    •  float 到 int,float 到 long,double 到 int,double 到 long 等由浮点类型转换成整数类型时,是不会自动转换的,不然将会丢失精度。
    •  c.引用类型能够自动转换为父类的
    •  d.基本类型和它们包装类型是能够互相转换的

    3、强制类型转换:用圆括号括起来目标类型,置于变量前

  • 相关阅读:
    UnityWebgl错误-Uncaught DOMException: Blocked a frame with origin "" from accessing a cross-origin frame
    【Oracle123】v$sql 视图
    【QA123】ISO9126软件质量模型
    【测试工具123】HP LoadRunner
    【CSV123】如何使用Excel打开CSV并保留大数字精度
    【Java123】
    【FRM-Level2】2020 FRM二级考纲变化
    【FRM-Level2】2020 FRM二级 Current Issues
    【Oracle123】Oracle数据导入导出
    【中间件123】消息队列性能对比
  • 原文地址:https://www.cnblogs.com/MWCloud/p/11162455.html
Copyright © 2011-2022 走看看