Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中将int转换为char?为什么有效?如何防止信息丢失?_Java - Fatal编程技术网

如何在java中将int转换为char?为什么有效?如何防止信息丢失?

如何在java中将int转换为char?为什么有效?如何防止信息丢失?,java,Java,我读了几篇关于将int转换为char的文章。但他们都没有详细回答我的问题。就像我想把5转换成“5”。它缩小了转换范围,因为int有4个字节,而char只有2个字节。我这里有两个问题: 1.为什么(char)(a+'0')可以成功地将a转换为char,而(char)a失败? 2.如何确保在转换过程中不会丢失任何信息 为什么(char)(a+'0')可以成功地将a转换为char,而(char)a失败 这是因为a+'0'相当于a+48,即53。这对应于字符'5' 只需将int值5转换为char即可创建

我读了几篇关于将int转换为char的文章。但他们都没有详细回答我的问题。就像我想把5转换成“5”。它缩小了转换范围,因为int有4个字节,而char只有2个字节。我这里有两个问题: 1.为什么(char)(a+'0')可以成功地将a转换为char,而(char)a失败? 2.如何确保在转换过程中不会丢失任何信息

  • 为什么(char)(a+'0')可以成功地将a转换为char,而(char)a失败
  • 这是因为
    a+'0'
    相当于
    a+48
    ,即
    53
    。这对应于字符
    '5'

    只需将
    int
    5
    转换为
    char
    即可创建一个不可打印的
    char
    ,您将其解释为不工作

  • 如何确保在转换过程中不会丢失任何信息

  • 您可以使用检查
    a
    中的值是否足够小,可以放入
    字符中。

    字符类型只能表示单个字符,因此只能将数字从0转换为9。如果您想要较大的数字作为文本,请使用字符串,例如

    String str = a + "";
    

    您需要了解Unicode值。您知道
    int
    最多包含
    整数。MAX\u VALUE
    (2^31-1),而
    char
    仅包含一个“整数”数字吗?因此,对于int>9,损失是不可避免的。