繁体   English   中英

如何将 ASCII 码(0-255)转换为其对应的字符?

[英]How to convert ASCII code (0-255) to its corresponding character?

在 Java 中,如何将 ASCII 代码(它是 [0, 255] 范围内的整数)转换为其相应的 ASCII 字符?

例如:

65  -> "A"
102 -> "f"

System.out.println((char)65); 会打印“A”

String.valueOf ( Character.toChars(int) )

假设整数是,如您所说,介于 0 和 255 之间,您将从Character.toChars返回一个带有单个字符的数组,当传递给String.valueOf时,它将成为一个单字符字符串。

出于多种原因,使用Character.toChars优于涉及从intchar (即(char) i )的强制转换的方法,包括Character.toChars将抛出IllegalArgumentException如果您未能正确验证整数而强制转换将吞下错误(根据缩小的原始转换规范),可能会提供与您预期不同的输出。

int number = 65;
char c = (char)number;

这是一个简单的解决方案

    new String(new char[] { 65 })

您将得到一个长度为 1 的字符串,其单个字符的(ASCII)代码为 65。在 Java 中,字符是数字数据类型。

一种更简单的方法:

将整数类型转换为字符,让int n为整数,然后:

Char c=(char)n;
System.out.print(c)//char c will store the converted value.

可以像这样从 a 迭代到 z

int asciiForLowerA = 97;
int asciiForLowerZ = 122;
for(int asciiCode = asciiForLowerA; asciiCode <= asciiForLowerZ; asciiCode++){
    search(sCurrentLine, searchKey + Character.toString ((char) asciiCode));
}
    for (int i = 0; i < 256; i++) {
        System.out.println(i + " -> " + (char) i);
    }

    char lowercase = 'f';
    int offset = (int) 'a' - (int) 'A';
    char uppercase = (char) ((int) lowercase - offset);
    System.out.println("The uppercase letter is " + uppercase);

    String numberString = JOptionPane.showInputDialog(null,
            "Enter an ASCII code:",
            "ASCII conversion", JOptionPane.QUESTION_MESSAGE);

    int code = (int) numberString.charAt(0);
    System.out.println("The character for ASCII code "
            + code + " is " + (char) code);

为什么不将它简化为返回ascii字符的方法?

public char toAscii (int input) {
    return (char)input;
}

这是一个示例,它表明通过将 int 转换为 char,可以确定对应的字符为 ASCII 代码。

public class sample6
{
    public static void main(String... asf)
    {

        for(int i =0; i<256; i++)
        {
            System.out.println( i + ". " + (char)i);
        }
    }
}

上答案仅在解决问题附近。 继承人你的答案:

Integer.decode(Character.toString(char c));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM