在Java中,我了解到以下语法可用于提及键盘上没有的Unicode字符(例如,非ASCII字符):

(\u)(u)*(HexDigit)(HexDigit)(HexDigit)(HexDigit)

我的问题是:
以上语法中(u)*的目的是什么?

我理解的一个用Java表示日元符号的用例是:
char ch = '\u00A5';

最佳答案

有趣的问题。 Section 3.3 of the JSL says:

UnicodeEscape:
    \ UnicodeMarker HexDigit HexDigit HexDigit HexDigit

UnicodeMarker:
    u
    UnicodeMarker u

转换为\\u+\p{XDigit}{4}




没错,反斜杠后可以有一个或多个u。原因进一步说明:



所以这个输入
 \u0020ä

变成
 \uu0020\u00e4

第一个uu的意思是“这是一个以unicode开头的转义序列”,而第二个u则是“一个自动工具将非ASCII字符转换为unicode转义”。

当您希望从ASCII转换回unicode时,此信息很有用:您可以还原尽可能多的原始代码。

关于java - Java中的Unicode转义语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21522770/

10-11 04:51