CodeGym /Java 博客 /随机的 /Java 将 Char 转换为 Int 实例
John Squirrels
第 41 级
San Francisco

Java 将 Char 转换为 Int 实例

已在 随机的 群组中发布
用户从键盘输入的符号信息通常需要转换为数字,或者程序员应该从中获取数字。Java 中有一些方法可以做到这一点。在本文中,我们将找出帮助我们将 char 值转换为 int 值的方法。

隐式类型转换

类型转换是将一种数据类型的值转换为另一种数据类型的值的过程。类型转换可以是手动的,也可以是自动的,具体取决于类型。类型应该兼容。在 Java 中,我们有两种类型的类型转换,显式和隐式。只有当我们将变量从“较大”类型转换为“较小”类型(例如,从intlong). 如果我们想将一个 char 类型的变量转换为 int 数据类型,通常我们需要从 ASCII 表中获取它的等效值。每个可以数字输入的字母表或符号都有一个对应的唯一整数。例如,字母“A”的 ASCII 代码为 65。通过类型转换,我们强制将字符值转换为其等效的 ASCII 整数代码。这是我们使用类型转换的 Java char 到 int 示例。

Java char 到 int 示例(使用类型转换)


package charToInt;

public class Implicit {

       public static void main(String[] args) {
           char char1 = 'A';
           char char2 = 'a';
           int x = char1;
           int y = char2;

           System.out.println("ASCII value of '" + char1 + "' is " + x);
           System.out.println("ASCII value of '" + char2 + "' is " + y);
       }
   }
输出是:
'A' 的 ASCII 值是 65 'a' 的 ASCII 值是 97

显式类型转换

正如我们在上面看到的,在 char 到 int 转换的情况下,没有必要显式地这样做,因为 2 个字节用于存储 char,而 4 个字节用于存储 int。即int类型是“大”。尽管如此,作为练习,我们可以将 char 变量显式转换为整数。对于此操作,我们在括号中提到 (int)。

package charToInt;

public class Explicit {

       public static void main(String[] args) {
           char char1 = 'A';
           System.out.println("ASCII value of '" + char1 + "' is " + (int)char1);
       }
   }
输出是:
'A' 的 ASCII 值是 65

使用 getNumericValue()

getNumericValue()的工作方式类似于类型转换,但它不是遵循 ASCII 表,而是遵循 Unicode 编码标准。ASCII 只能表示一组特定的符号和字符,例如拉丁字母(加上一些国家字母符号)、数字、标点符号和控制字符。Unicode 包含超过一百万个值,其中包含世界上每种语言的字母和符号。例如,A在Unicode中的值为\u0041,相当于数值10。如果该字符没有数值,则该方法返回-1。使用此方法可以方便地返回非负整数。

package charToInt;

public class UsingGetNumericValue {

       public static void main(String[] args) {
           char char1 = '7';
           char char2 = 'A';
           char char3 = '*';

           int x = Character.getNumericValue(char1);
           int y = Character.getNumericValue(char2);
           int z = Character.getNumericValue(char3);

           System.out.println("The Unicode value of '" + char1 + "' is " + x);
           System.out.println("The Unicode value of '" + char2 + "' is " + y);
           System.out.println("The Unicode value of '" + char3 + "' is " + z);

       }
   }
输出是:
'7' 的 Unicode 值为 7 'A' 的 Unicode 值为 10 '*' 的 Unicode 值为 -1

使用 ParseInt()

ParseInt()是另一种将 char 转换为 int 的方法。它还广泛用于在其他数字数据类型(如浮点数、双精度数和长整型)之间进行交叉转换。ParseInt()需要至少一个参数,最多两个参数。第一个参数是我们要转换的值的变量名。第二个参数是基数,它指的是十进制、八进制、十六进制等的基值。由于ParseInt()转换数据类型的能力也考虑了数字系统,因此它是转换“数字”的最佳选择” 在 Java 中将 char 转换为 int。如果要使用此方法,请牢记两点。 解析整数()方法只接受 String 参数,因此您应该首先将 char 转换为 String(使用String.valueOf)。您不能使用parseInt()转换字母表或其他符号,但存储在 char 数据类型中的数值除外。如果您输入非数字值,则会出现错误。这是一个 Java 示例:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = '7';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
输出是:
7
让我们尝试使用 parseInt 吨非数字值:

package charToInt;

public class ParseInt {
       public static void main(String args[]){
           char ch = 'q';
           int n = Integer.parseInt(String.valueOf(ch));
           System.out.println(n);
       }
   }
输出是:
线程“main”中的异常 java.lang.NumberFormatException:对于输入字符串:“q”在 java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) 在 java.base/java.lang.Integer.parseInt (Integer.java:652) 在 java.base/java.lang.Integer.parseInt(Integer.java:770) 在 charToInt.ValueOf.main(ValueOf.java:6)

减去'0'

有一种非常简单的方法可以将字符转换为整数。为此,只需从字符中减去字符“0”的 ASCII 值即可。例如,要从字符“7”获取 int 7:

int intValue = '7'-' 0 ';
请注意,这适用于专门为整数字符获取 int 值!例如,如果从“A”中减去“0”,该方法将只返回零的 ASCII 代码与字母 A 之间的差异。这是一个示例。

package charToInt;

public class SubtractingZero {

   public static void main(String[] args) {
       char char1 = '7';
       char char2 = 'A';
       char char3 = '*';

       System.out.println(char1);
       System.out.println(char1 - '0');

       System.out.println(char2);
       System.out.println(char2 - '0');

       System.out.println(char3);
       System.out.println(char3 - '0');
      
   }

}
输出是:
7 7 17 * -6

结论

如果您需要在 Java 中将 char 转换为 int,请使用以下方法之一:
  • 隐式类型转换 //获取 ASCII 值
  • 字符.getNumericValue()
  • Integer.parseInt() //与 String.valueOf() 配对)
  • 减去“0”//仅适用于整数数值
您还可以进行显式类型转换。然而,这是一个多余的操作:它不是必需的,但只适用于 Java。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION