杰瑞科技汇

Java数字如何转ASCII码?

在 Java 中,数字字符(如 '0', '1' 等)的 ASCII 码是固定的。

Java数字如何转ASCII码?-图1
(图片来源网络,侵删)

数字字符的 ASCII 码从 48 (十进制) 开始,依次递增:

字符 ASCII 码 (十进制) ASCII 码 (十六进制)
'0' 48 0x30
'1' 49 0x31
'2' 50 0x32
'3' 51 0x33
'4' 52 0x34
'5' 53 0x35
'6' 54 0x36
'7' 55 0x37
'8' 56 0x38
'9' 57 0x39

这个规律非常重要:一个数字字符的 ASCII 码 = 它的数值 + 48


如何在 Java 中获取数字字符的 ASCII 码?

在 Java 中,char 类型本质上是 16 位的无符号整数,它可以直接表示一个 Unicode 字符,你可以非常方便地将一个 char 强制转换为 int 来获取其 ASCII 码(或更准确地说是 Unicode 码点,对于 ASCII 两者是相同的)。

方法 1:使用强制类型转换 (int)

这是最直接的方法。

Java数字如何转ASCII码?-图2
(图片来源网络,侵删)
public class AsciiExample {
    public static void main(String[] args) {
        char digit = '5';
        // 将 char 强制转换为 int
        int asciiCode = (int) digit;
        System.out.println("字符: " + digit);
        System.out.println("对应的 ASCII 码 (十进制): " + asciiCode); // 输出 53
        System.out.println("对应的 ASCII 码 (十六进制): " + Integer.toHexString(asciiCode)); // 输出 35
    }
}

方法 2:使用 Character.getNumericValue()

这个方法比较特殊,它返回的是字符所代表的数值,而不是 ASCII 码。

public class CharacterValueExample {
    public static void main(String[] args) {
        char digit = '5';
        // 获取字符代表的数值
        int numericValue = Character.getNumericValue(digit);
        System.out.println("字符: " + digit);
        System.out.println("字符代表的数值: " + numericValue); // 输出 5
        System.out.println("ASCII 码: " + (int)digit); // 输出 53
    }
}

方法 3:遍历并打印所有数字字符的 ASCII 码

如果你想验证所有数字字符的 ASCII 码,可以使用一个循环。

public class PrintAllDigitAscii {
    public static void main(String[] args) {
        System.out.println("数字字符及其对应的 ASCII 码:");
        for (char c = '0'; c <= '9'; c++) {
            System.out.println("字符 '" + c + "' -> ASCII 码: " + (int)c);
        }
    }
}

输出结果:

数字字符及其对应的 ASCII 码:
字符 '0' -> ASCII 码: 48
字符 '1' -> ASCII 码: 49
字符 '2' -> ASCII 码: 50
字符 '3' -> ASCII 码: 51
字符 '4' -> ASCII 码: 52
字符 '5' -> ASCII 码: 53
字符 '6' -> ASCII 码: 54
字符 '7' -> ASCII 码: 55
字符 '8' -> ASCII 码: 56
字符 '9' -> ASCII 码: 57

重要区分:数字字符 vs. 数字本身

这是初学者最容易混淆的地方。

  • 数字字符 (char): '5',它在内存中存储的是其 ASCII 码 53
  • 数字本身 (int, double 等): 5,它在内存中存储的就是整数值 5

如何将数字字符转换为数字?

如果你有一个字符 '5',想得到整数 5,不能直接转换,需要减去 '0' 的 ASCII 码。

public charToDigit {
    public static void main(String[] args) {
        char digitChar = '7';
        // 错误的方式: (int)digitChar 会得到 55
        // int wrongNumber = (int) digitChar; 
        // 正确的方式: 利用 ASCII 码的规律
        int number = digitChar - '0'; // 55 - 48 = 7
        System.out.println("字符: " + digitChar);
        System.out.println("转换后的数字: " + number); // 输出 7
    }
}

如何将数字转换为数字字符?

反过来,如果你有一个整数 9,想得到字符 '9',需要加上 '0' 的 ASCII 码。

public digitToChar {
    public static void main(String[] args) {
        int number = 9;
        char digitChar = (char) (number + '0'); // 9 + 48 = 57,对应字符 '9'
        System.out.println("数字: " + number);
        System.out.println("转换后的字符: " + digitChar); // 输出 '9'
    }
}

操作 Java 代码 示例 ('5')
获取字符的 ASCII 码 (int) char_variable (int) '5' 结果是 53
将字符转为数字 char_variable - '0' '5' - '0' 结果是 5
将数字转为字符 (char) (number + '0') (char) (5 + '0') 结果是 '5'

charint 之间的转换是理解数字 ASCII 码的关键。char 是字符的表示,而 int (通过强制转换) 可以让你看到这个字符背后隐藏的编码值。

分享:
扫描分享到社交APP
上一篇
下一篇