Java 整數到字元轉換程式


Java 有八種基本資料型別:byte、short、int、long、char、float、double 和 boolean。int 是 32 位有符號資料型別,用於儲存整數。其範圍是從 –2,147,483,648 到 2,147,483,647。char 儲存 16 位無符號 Unicode 字元。

在本文中,我們將討論幾種將 int 轉換為 char 的方法:

  • 透過新增 '0'

  • 透過使用 forDigit() 方法

  • 透過使用型別轉換

示例 1

以下示例說明如何宣告和初始化 int 變數。

int num1 = 24;

int 是用於宣告 int 變數的關鍵字,num1 是變數的名稱,它儲存值 24。

示例 2

以下示例說明如何宣告和初始化字元變數。我們將字元變數儲存在單引號 (' ') 中。

char ch1 = ‘S’;

char 是用於宣告字元變數的關鍵字,ch1 是變數的名稱,它儲存字元 'S'。

方法 1:使用 forDigit() 方法

類 'Character' 的 forDigit() 方法根據給定的 RADIX 值返回指定數字的字元。十進位制的 RADIX 值為 10,十六進位制為 16,二進位制為 2。

類 'Character' 可在 'java.lang' 包中找到。

我們還將在程式中使用 getClass().getSimpleName() 方法來檢查給定 int 變數在轉換為字元後資料型別。

forDigit() 的語法

char char_variable = Character.forDigit(var_to_convert, radix);  

char_variable - 將儲存轉換後值的字元變數的名稱。

Character 是類名,forDigit() 是其方法,與兩個引數一起使用。

var_to_convert 是將要轉換的變數,radix 充當轉換的基數

示例

import java.lang.*;
public class Conversion {
   public static void main(String[] args) {
      int rad = 16;
      int n1 = 8;
      int n2 = 11;
      // Conversion of int to char
      char ch1 = Character.forDigit(n1, rad );
      char ch2 = Character.forDigit(n2, rad );
      System.out.println("ch1: " + ch1);
      System.out.println("ch2: " + ch2);
      // to check the datatype
      System.out.println("type of ch1: " + ((Object)ch1).getClass().getSimpleName());
      System.out.println("type of ch2: " + ((Object)ch2).getClass().getSimpleName());
   }
}

輸出

ch1: 8
ch2: b
type of ch1: Character
type of ch2: Character

在以上程式碼中,我們建立了三個整型變數。'ch1' 和 'ch2' 將儲存轉換後的變數。我們使用了 16 作為基數,因此指定的變數已更改為十六進位制數字系統(0 到 9,9 之後是 A 到 F)。十六進位制系統中第 11 位的值為 'b'。因此,我們得到 8 和 'b' 作為輸出。最後,我們檢查了資料型別。

方法 2:使用型別轉換

當我們將一種資料型別轉換為另一種資料型別時,我們稱之為型別轉換。Java 中有兩種型別的型別轉換:顯式和隱式。在隱式型別轉換中,較低資料型別會自動由編譯器轉換為任何其他較高資料型別,並且在轉換過程中不會丟失資料。

當我們將較高資料型別轉換為較低資料型別時,稱為顯式型別轉換,並且需要手動完成。在其中,存在丟失資料的風險,因為較低資料型別的範圍小於較高資料型別,這是手動執行它的主要原因。

在我們的程式中,我們將使用顯式型別轉換,因為整數範圍高於字元。

forDigit() 的語法

char_variable = (char) var_to_convert;   

示例

public class Conversion {
   public static void main(String[] args) {
      int n1 = 97;
      int n2 = 65;
      // Typecasting of int to char variable
      char ch1 = (char)n1;
      char ch2 = (char)n2;
      System.out.println("ch1: " + ch1);
      System.out.println("ch2: " + ch2);
   }
}

輸出

ch1: a
ch2: A

在以上程式碼中,我們宣告並初始化了兩個整型變數 'n1' 和 'n2'。'ch1' 和 'ch2' 將儲存轉換後的變數。我們在輸出中得到 'a' 和 'A',因為它們分別是 65 和 97 的 ASCII 值。

方法 3:透過新增 '0'

當我們在整型變數中新增 0 並進行型別轉換時,它實際上將返回該數字的 ASCII 值。0 的 ASCII 值為 48,因此如果我們在 0 中新增 65,它將變為 113,而 113 的 ASCII 值為 q。

示例

public class Conversion {
   public static void main(String[] args) {
      int n1 = 65;
      int n2 = 66;
      // Conversion of int to char
      char ch1 = (char)(n1 + '0');
      char ch2 = (char)(n2 + '0');
      System.out.println("ch1: " + ch1);
      System.out.println("ch2: " + ch2);
      System.out.println("type of ch1: " + ((Object)ch1).getClass().getSimpleName());
      System.out.println("type of ch2: " + ((Object)ch2).getClass().getSimpleName());
   }
}

輸出

ch1: q
ch2: r
type of ch1: Character
type of ch2: Character

結論

在本文中,我們討論了三種將 int 轉換為 char 的方法。大多數情況下,我們透過使用顯式型別轉換來進行此類轉換,因為它易於使用和理解。

更新於: 2023 年 5 月 2 日

瀏覽量 208 次

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告