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 的方法。大多数情况下,我们通过使用显式类型转换来进行此类转换,因为它易于使用和理解。