当前位置: 首页 > 面试题库 >

Java中字符和整数之间的转换

章涵蓄
2023-03-14
问题内容

您不能从int转换为char,因此这是非法的 int i = 88; char c = i;

但是,这是允许的char c = 88;

这不是纯数字和int文字吗?如何允许?


问题答案:

char 实际上是Java中的无符号16位整数类型。

与其他整数类型一样,您可以执行从整数常量到任何整数类型的赋值转换,只要它在适当的范围内即可。这就是为什么

byte b = 10;

也可以。

从JLS,第5.2节:

此外,如果该表达式是类型为byte,short,char或int的常量表达式(第15.28节):

  • 如果变量的类型为byte,short或char,并且常量表达式的值可表示为变量的类型,则可以使用缩窄的原始转换。
  • 如果变量的类型为:可以使用紧缩原始转换后跟装箱转换。
    • 字节和常量表达式的值可以在类型字节中表示。
    • 短,常量表达式的值可以用短类型表示。
    • 字符和常量表达式的值可以用char类型表示。



 类似资料:
  • 我目前正在开发一个应用程序,用户可以通过十六进制编辑器界面编辑ByteBuffer,也可以通过JTextPane编辑相应的文本。我当前的问题是因为JTextPane需要一个字符串,我需要在显示值之前将ByteBuffer转换为字符串。但是,在转换过程中,无效字符将替换为字符集默认替换字符。这会压缩无效值,因此当我将其转换回字节缓冲区时,无效字符值将替换为默认替换字符的字节值。有没有一种简单的方法可

  • 问题内容: 在上次考试中,我们进行了练习以确定以下代码的输出: 我的回答是,但现在我意识到这是错误的答案。应该是。但为什么? 问题答案: 假设您的语法是: 表达式是从左到右求值的,在这种情况下,2 + 3求和为5,当“添加”到字符串结果为时,将其加到1时,再加上1,结果是:

  • 问题内容: 系统:Windows Vista 32位,Java 6.0.2 我有一些关于将char转换为int的问题。我运行下面的代码,将myInt的值保留为4: 现在,这种转换是Java自动完成的吗?是从ascii“ 4”减去ascii值“ 0”,然后在幕后强制转换为int吗?这让我感到困惑,因为当我尝试进行反向操作时,实际上必须将结果转换为char: 如第一个示例所示,是因为Java自动将(a

  • 问题内容: 这两个命令有什么区别? 我想存储约500万个整数,并且希望以最有效的方式进行存储。 问题答案: 不,没有区别;两者都存储为字符串。从redis.io: Redis列表只是字符串列表,按插入顺序排序。 根据您的用法,您可能需要考虑使用set而不是列表。

  • 问题内容: 我需要在Java中对整数进行除法,其结果应该是浮点数。 我可以使用符号吗?如: 问题答案: 将整数之一转换为浮点以确保浮点除法: