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 次

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告