有趣的问题。JSL的3.3节说:
UnipreEscape: UnipreMarker HexDigit HexDigit HexDigit HexDigitUnipreMarker: u UnipreMarker u
转化为
\u+p{XDigit}{4}
和
如果合格的后跟u,或不止一个u,并且最后一个u后不跟四个十六进制数字,则发生编译时错误。
因此,您是对的,
u反斜杠后可以有一个或多个。原因进一步说明:
Java编程语言指定了一种将Unipre编写的程序转换为ASCII的标准方法,该程序将程序更改为可以由基于ASCII的工具处理的形式。转换涉及通过添加额外的u将程序源文本中的所有Unipre转义转换为ASCII-
例如, uxxxx变为 uuxxxx-同时将源文本中的非ASCII字符转换为每个均包含单个u的Unipre转义。 。Java编译器同样可以接受此转换后的版本,并且表示完全相同的程序。稍后可以通过将存在多个u的每个转义序列转换为具有更少u的Unipre字符序列,同时将具有单个u的每个转义序列转换为相应的单个Unipre字符,从此ASCII格式还原确切的Unipre源。
所以这个输入
u0020ä
变成
uu0020u00e4
第一个
uu意思是“这是一个以unipre开头的转义序列”,第二个意思
u是“一个自动工具将非ASCII字符转换为unipre义。”
当您希望从ASCII转换回unipre时,此信息很有用:您可以还原尽可能多的原始代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)