Java中char 转化为int 的两种方法

本文介绍了两种将字符'9'转换为整数9的方法:一是通过字符串和Integer类的parseInt方法;二是使用Character类的getNumericValue方法。后者更为简便且无需额外创建对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天机试过程中遇到一个问题: 如何把 char ‘9’ 转为 int 9, 大家应该知道,不能直接转化,那样得到是‘9’的Ascii. 如下面:

    

public class IntAndCharConvertor {
	public static void main(String[] args) {
		char numChar = '9';
		int  intNum = (int)numChar;
 		System.out.println(numChar + ": " + intNum);
	}
}

运行结果: 

9: 57
那么怎么把char'9' 转为 int 9 呢?

方法一: 先把char转为char[1]的数组,然后转为string,最后利用Integer中parserInt方法,此方法要创建多个对象,要消耗许多内存。

方法二: 利用char的封装类 character, 通过如下静态方法就可以直接实现。

    public static int getNumericValue(char ch) {
        return getNumericValue((int)ch);
    }

例子:
package com.albertshao.interview;

public class IntAndCharConvertor {
	public static void main(String[] args) {
		char numChar = '9';
		int  intNum = (int)numChar;
		System.out.println(numChar + ": " + intNum);
		
		//method 1:
		char[] charArray = {numChar};
		intNum = Integer.parseInt(new String(charArray));
		System.out.println("method 1: " + numChar + ":" + intNum);
		
		//method 2:
		System.out.println("method 2: " + numChar + ":" + Character.getNumericValue(numChar));

		}
	}
运行结果

9: 57
method 1: 9:9
method 2: 9:9



### Java 中 `char` 换为 `int` 在 Java 编程语言中,字符类型 (`char`) 和整数类型 (`int`) 的换可以通过隐式或显式的强制类型换来实现。当执行从 `char` 到 `int` 的换时,实际上是利用了 Unicode 表中的数值表示。 #### 隐式换 由于 `char` 类型可以被自动提升到更大的基本数据类型如 `int`,因此可以直接赋值给 `int` 变量而无需任何额外的操作: ```java char character = 'A'; int number = character; System.out.println(number); // 输出 65, 因为'A'的ASCII码是65[^1] ``` 上述例子展示了如何通过简单的赋值操作完成由 `char` 向 `int` 的变。这里需要注意的是,得到的结果并不是原始字符本身而是其对应的 ASCII 或者 Unicode 数字编码。 #### 显式换 (强制型) 如果希望显示地进行这种类型的换,则可以在表达式前加上目标类型的名称并用括号包围起来作为提示符来进行强: ```java char ch = 'B'; int num = (int)ch; System.out.println(num); // 输出 66, 因为'B'的ASCII码是66 ``` 这种方式同样适用于其他场景下的类型换需求,在某些情况下可能更清晰明了。 #### 使用 Character Wrapper Class 方法 除了直接换外还可以借助于封装类 `Character` 提供的方法获取指定字符所代表的整数值: ```java char c = 'C'; int asciiValue = Character.getNumericValue(c); // 注意这里的 getNumericValue() 返回的是该字符对应数字的位置而非真正的 ASCII 值, // 如果想要获得确切的 ASCII/Unicode 码位应该使用 cast 方式或者查阅文档确认具体行为. System.out.println(asciiValue); // 对应位置上的数字并非实际 ASCII 值 ``` 对于大多数情况而言,简单地将 `char` 类型变量赋予一个 `int` 类型即可满足日常开发的需求;而对于特殊应用则可以根据实际情况选用不同的方法处理此类问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值