Java中基本類型和包裝類/字符串之間的轉換以及常用類(三十九)


包裝類

基本數據類型(如:int、float、double、boolean、char 等)是不具備對象的特性的。比如基本類型不能調用方法、功能簡單等等。

為了讓基本數據類型也具備對象的特性, Java 為每個基本數據類型都提供了一個包裝類,這樣我們就可以像操作對象那樣來操作基本數據類型。 

  基本類型和包裝類之間的對應關系:

       

  包裝類主要提供了兩大類方法:

  •   將本類型和其他基本類型進行轉換的方法
  •   將字符串和本類型及包裝類互相轉換的方法

如:Integer包裝類的構造方法

  Interger包裝類的所有方法:

  

public class HelloWorld {
    public static void main(String[] args) {
        // 定義int類型變量,值為86
        int score1 = 86;
        // 創建Integer包裝類對象,表示變量score1的值
        Integer score2=new Integer(score1);
        // 將Integer包裝類轉換為double類型
        double score3=score2.doubleValue();
        // 將Integer包裝類轉換為float類型
        float score4=score2.floatValue();
        // 將Integer包裝類轉換為int類型
        int score5 =score2.intValue();
        System.out.println("Integer包裝類:" + score2);
        System.out.println("double類型:" + score3);
        System.out.println("float類型:" + score4);
        System.out.println("int類型:" + score5);
    }
}

基本類型和包裝類之間經常需要互相轉換,以 Integer 為例(其他幾個包裝類的操作類似~):

在 JDK1.5 引入自動裝箱和拆箱的機制后,包裝類和基本類型之間的轉換就更加輕松便利了。

裝箱:把基本類型轉換成包裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱

  

拆箱:和裝箱相反,把包裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱

public class HelloWorld {
    public static void main(String[] args) {
        // 定義double類型變量
        double a = 91.5;
        // 手動裝箱
        Double b = new Double(a);
        // 自動裝箱
        Double c = a;
        System.out.println("裝箱后的結果為:" + b + "和" + c);
        // 定義一個Double包裝類對象,值為8
        Double d = new Double(87.0);
        // 手動拆箱
        double e = d.doubleValue();
        // 自動拆箱
        double f = d;
        System.out.println("拆箱后的結果為:" + e + "和" + f);
    }
}

 

基本類型和字符串之間的轉換

在程序開發中,經常需要在基本數據類型和字符串之間進行轉換。

基本類型轉換為字符串有三種方法:

  • 使用包裝類的 toString() 方法
  • 使用String類的 valueOf() 方法
  • 用一個空字符串加上基本類型,得到的就是基本類型數據對應的字符串

   

將字符串轉換成基本類型有兩種方法:

  • 調用包裝類的 parseXxx 靜態方法
  • 調用包裝類的 valueOf() 方法轉換為基本類型的包裝類,會自動拆箱

  

PS:其他基本類型與字符串的相互轉化方法類似~

public class HelloWorld {
    public static void main(String[] args) {
        double m = 78.5;
        //將基本類型轉換為字符串
        String str1 = String.valueOf(m);
        System.out.println("m 轉換為String型后與整數20的求和結果為: "+(str1+20));
        String str = "180.20";
        // 將字符串轉換為基本類型
        Double a = Double.valueOf(str);
        System.out.println("str 轉換為double型后與整數20的求和結果為: "+(a+20));
    }
}

 

使用 Date 和 SimpleDateFormat 類表示時間

在程序開發中,經常需要處理日期和時間的相關數據,此時我們可以使用 java.util 包中的 Date 類。這個類最主要的作用就是獲取當前時間~

Date 類的使用:

使用 Date 類的默認無參構造方法創建出的對象就代表當前時間,我們可以直接輸出 Date 對象顯示當前的時間,顯示的結果如下:

 

其中, Fri 代表 Friday (星期五), Apr 代表 April (四月), 24 代表 24 號, CST 代表 China Standard Time (中國標准時間,也就是北京時間,東八區)。

上面的輸出結果中,默認的時間格式不是很友好,與我們日常看到的日期格式不太一樣,如果想要按指定的格式進行顯示,如:2020-04-24 09:48:00 ,該怎么做?

—— 此時就用到了 java.text 包中的 SimpleDateFormat 類可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期轉換為指定格式的文本,也可將文本轉換為日期。

1. 使用 format() 方法將日期轉換為指定格式的文本

運行結果:

代碼中的 “yyyy-MM-dd HH:mm:ss” 為預定義字符串, yyyy 表示四位年, MM 表示兩位月份, dd 表示兩位日期, HH 表示小時(使用24小時制), mm 表示分鍾, ss 表示秒,這樣就指定了轉換的目標格式,最后調用 format() 方法將時間轉換為指定的格式的字符串。

2. 使用 parse() 方法將文本轉換為日期

運行結果:

代碼中的 “yyyy年MM月dd日 HH:mm:ss” 指定了字符串的日期格式,調用 parse() 方法將文本轉換為日期。

注意:

  • 調用 SimpleDateFormat 對象的 parse() 方法時可能會出現轉換異常,即 ParseException ,因此需要進行異常處理
  • 使用 Date 類時需要導入 java.util 包,使用 SimpleDateFormat 時需要導入 java.text 包
package com.example.demo;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class HelloWorld {
    public static void main(String[] args) throws ParseException {
        // 使用format()方法將日期轉換為指定格式的文本
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 創建Date對象,表示當前時間
        Date now = new Date();
        // 調用format()方法,將日期轉換為字符串並輸出
        System.out.println( sdf1.format(now));
        System.out.println(sdf2.format(now));
        System.out.println(sdf3.format(now));
        // 使用parse()方法將文本轉換為日期
        String d = "2020-4-24 10:15:36";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 調用parse()方法,將字符串轉換為日期
        Date date = sdf.parse(d);
        System.out.println(date);
    }
}

運行結果:

 

Calendar 類的應用

Date 類最主要的作用就是獲得當前時間,同時這個類里面也具有設置時間以及一些其他的功能,但是由於本身設計的問題,這些方法卻遭到眾多批評,不建議使用,更推薦使用 Calendar 類進行時間和日期的處理。

java.util.Calendar 類是一個抽象類,可以通過調用 getInstance() 靜態方法獲取一個 Calendar 對象,此對象已由當前日期時間初始化,即默認代表當前時間。如:Calendar c = Calendar.getInstance();

使用 Calendar 獲取年、月、日、時間等信息:

運行結果:

其中,調用 Calendar 類的 getInstance() 方法獲取一個實例,然后通過調用 get() 方法獲取日期時間信息,參數為需要獲得的字段的值, Calendar.Year 等為 Calendar 類中定義的靜態常量。

Calendar 類提供了 getTime() 方法,用來獲取 Date 對象,完成 Calendar 和 Date 的轉換,還可通過 getTimeInMillis() 方法,獲取此 Calendar 的時間值,以毫秒為單位。如下所示:

運行結果:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class HelloWorld {
    public static void main(String[] args) {
        // 創建Calendar對象
        Calendar c = Calendar.getInstance();
        // 將Calendar對象轉換為Date對象
        Date date = c.getTime();
        // 創建SimpleDateFormat對象,指定目標格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 將日期轉換為指定格式的字符串
        String now = sdf.format(date);
        System.out.println("當前時間:" + now);
    }
}

運行結果:

 

使用 Math 類操作數據

Math 類位於 java.lang 包中,包含用於執行基本數學運算的方法, Math 類的所有方法都是靜態方法,所以使用該類中的方法時,可以直接使用類名.方法名,如: Math.round();

  常用的方法:

       

如:

運行結果:

PS: Math 類還提供了許多其他方法~

public class HelloWorld {
    public static void main(String[] args) {
        // 定義一個整型數組,長度為10
        int[] nums = {0,1,2,3,4,5,6,7,8,9};
        //通過循環給數組賦值
        for (int i = 0; i < nums.length; i++) {
            // 產生10以內的隨機數
            int x = (int)(Math.random()*10);
                    nums[i] = x;// 為元素賦值
        }
        // 使用foreach循環輸出數組中的元素
        for (  int num:nums                  ) {
            System.out.print(num + " ");
        }
    }
}

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM