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

字符文字(例如'\ 15')中转义数字的Java语义是什么?

唐阳泽
2023-03-14
问题内容

请说明执行以下代码部分时究竟发生了什么:

int a='\15';
System.out.println(a);

这打印出13;

int a='\25';
System.out.println(a);

打印出21;

int a='\100';
System.out.println(a);

打印出64。


问题答案:

您已为字符变量分配了一个变量'a',该字符变量由单引号引起来,例如(不同于与字符串文本由双引号引起来的,例如"a"int。Java会自动将16位无符号char转换为32位带符号int

但是,当字符文字是反斜杠后跟1-3个数字时,它是字符的 八进制
(基数/基数 8)表示。从而:

  • \15= 1×8 + 5 = 13(回车;与相同'\r'
  • \25 = 2×8 + 5 = 21(NAK字符-否定确认)
  • \100= 1×64 + 0×8 + 0 = 64(@符号;与相同'@'

有关字符文字和转义序列的更多信息,请参见JLS部分:

  • 3.10.4:字符字面量
  • 3.10.6:字符和字符串文字的转义序列

从3.10.6 引用BNF:

OctalEscape:
    \ OctalDigit
    \ OctalDigit OctalDigit
    \ ZeroToThree OctalDigit OctalDigit

OctalDigit: one of
    0 1 2 3 4 5 6 7

ZeroToThree: one of
    0 1 2 3


 类似资料:
  • 本文向大家介绍PowerShell中的转义字符是什么?,包括了PowerShell中的转义字符是什么?的使用技巧和注意事项,需要的朋友参考一下 PowerShell中转义字符是`,向后撇号(backward apostrophe,是tab键上面的按键,不是单引号),例如: 会输出$env:processor_architecture=AMD64 当然还有一个转义字符是在正则表达式(Regular

  • 本文向大家介绍Java转义字符,包括了Java转义字符的使用技巧和注意事项,需要的朋友参考一下 示例 通常 要使用正则表达式中的特定字符(?+|等),按其字面意思,必须对其进行转义。在常规正则表达式中,这是通过反斜杠完成的\。但是,由于它在Java字符串中具有特殊含义,因此必须使用双反斜杠\\。 这两个示例不起作用: 这个例子有效 分割管道分隔字串 这不会返回预期的结果: 这将返回预期结果: 转义

  • 问题内容: 为了回答这个问题,我设法通过转义反斜杠来使字符串成为转义字符。 当我尝试将其概括为转义所有转义的字符时,它似乎无能为力: 但是对于特定的转义字符使用相同的方法,它确实起作用: 有一般的方法可以做到这一点吗?应包括,,,等。 问题答案: 使用r’text’将字符串定义为raw,如下面的代码所示:

  • 问题内容: 我知道Java中的一些转义字符,例如 哪里有完整的清单? 问题答案: 你可以在此处找到完整列表。 此时在文本中插入一个选项卡。 此时,在文本中插入一个空格。 此时在文本中插入换行符。 此时在文本中插入回车符。 此时,在文本中插入换页。 此时,请在文本中插入一个单引号字符。 此时,请在文本中插入双引号字符。 此时在文本中插入一个反斜杠字符。

  • 字符集(Character Set)为每个字符分配了唯一的编号,我们不妨将它称为编码值。在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字符的方式称为 转义字符(Escape Character)。 转义字符以 或者 开头,以 开头表示后跟八进制形式的编码值,以 开头表示后跟十六进制形式的编码值。 对于转义字符来说,只能使用八进制或者十

  • 反斜线()用于插入在 Markdown 语法中有特殊作用的字符。 这是用来 *演示* 的 _文本_ 这是用来 *演示* 的 _文本_ 这是用来 演示 的 文本 这是用来 *演示* 的 _文本_ 这些字符包括: ` * _ {} [] () # + - . !