【问题标题】:How to reconvert from int to AScII in java? [duplicate]如何在 java 中从 int 转换为 AScII? [复制]
【发布时间】:2021-07-10 17:37:27
【问题描述】:

所以我的理解是,例如,如果我有一个 int a = 49 并想找出与之等效的 ASCII,我需要做的就是:

 int a = 49; 
 System.out.println((char)a);

输出:1.

但是我怎样才能做到这一点呢?那么假设我有 int a = 1 并且我希望输出为 49?

我已经尝试过类似的东西:

int a = 1; 
System.out.println ((char)a);

但是这里的输出是“.”而不是 49。

【问题讨论】:

  • 您可能希望将1 用作char,这意味着'1'
  • 好的,但是如果我给了一个值为 1 的 int,我如何将它变成一个值为“1”的 char?
  • 由于 Unicode 表中的数字字符按 0 到 9 的顺序排列,您只需使用 a 下的数字即可从 '0' 字符 a 移动次数。例如'0' + 0 将返回'0' 的索引。 '0' + 1 将返回 '1' 的索引。您需要对该索引做的就是将其转换回char。所以你可以写像int a = 1; char ch = (char)('0'+a);这样的东西。
  • 你也可以用更简单的方法:) char ch = Character.forDigit(a, 10);.

标签: java types ascii


【解决方案1】:

这个:

int a = 49;  
System.out.println((char)a);  

为您提供内部值为 49 的 char,即 unicode 字符“1”。没有进行数字转换,只是查看同一个数字的两种方式。

在这个:

int a = 1; 
System.out.println((char)a);

您会得到内部值为 1 的 char,这是一个 unicode 控制字符(ctrl/A,可能不会以任何有用的方式打印)。没有任何东西可以神奇地得出 49 的值。

如果你有字符 '1' 那就很简单了:

int a = '1';  
System.out.println(a);  

但这实际上与您的第一个案例相同; '1' 和 49 是相同的值。

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 2010-10-31
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多