避免在" /"之后忽略下一个字符。

时间:2014-09-29 14:49:35

标签: java android unicode

我正在将 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}}之后忽略一个角色?

2 个答案:

答案 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("\\\\");