我正在将 unicode字符存储为String 转换为 unicode text 。
例如,这是一个字符串 -
String unicode = "\u0041\u006e\u0064\u0072\u006f\u0069\u0064";
现在从这个字符串中,我想获得单独的unicode字符 -
u0041 u006e u0064 u0072 u006f u0069 u0064
为此,我使用以下代码 -
String[] parts = "\u0041\u006e\u0064\u0072\u006f\u0069\u0064".split("\");
但是现在"
之后\
split("\")
被\
忽略,我收到了错误。
如何在{{1}}之后忽略一个角色?
答案 0 :(得分:4)
\
字符是转义字符。您收到语法错误,因为\"
是在"
字面值中放置String
字符的转义序列。要在\
字面值中放置String
,您需要使用\\
(第一个\
转义第二个\
的特殊含义。所以句法上正确的陈述是:
String[] parts = "\u0041\u006e\u0064\u0072\u006f\u0069\u0064".split("\\");
但这不会给你你想要的东西,因为第一个参数不包含任何\
个字符。 (另外,split()
方法需要正则表达式而\
不是有效的正则表达式。)而是包含七个字符,代码点为U + 0041等。也许你想要:
String[] parts = "\\u0041\\u006e\\u0064\\u0072\\u006f\\u0069\\u0064".split("\\\\");
或者你想要
char[] parts = "\u0041\u006e\u0064\u0072\u006f\u0069\u0064".toCharArray();
然后您可以将parts
的每个元素转换为Unicode代码点字符串。
答案 1 :(得分:2)
你需要逃避反斜杠。您还需要再次转义反斜杠,因为split()将字符串视为正则表达式。使用.split("\\\\");