用escape java创建字符串

Dan*_*ani 6 java string escaping concatenation

我有以下问题,我有一个这样的字符串数组

String[] myArray = {"AAAA","BBBB","CCCC"};
Run Code Online (Sandbox Code Playgroud)

我的目的是创建另一个这样的数组

String myNewArray = {"\uAAAA","\uBBBB","\uCCCC"};
Run Code Online (Sandbox Code Playgroud)

问题是,如果我尝试使用循环创建数组

for (int i=0; i<myArray.length; i++) {
    myNewArray[i] = "\u" + myArray[i];
}
Run Code Online (Sandbox Code Playgroud)

如果我使用这样的循环,我会收到"无效的unicode错误"

for (int i=0; i<myArray.length; i++) {
    myNewArray[i] = "\\u" + myArray[i];
}
Run Code Online (Sandbox Code Playgroud)

我获得了这个数组

String myNewArray = {"\\uAAAA","\\uBBBB","\\uCCCC"};
Run Code Online (Sandbox Code Playgroud)

如果我使用这个循环

for (int i=0; i<myArray.length; i++) {
    myNewArray[i] = "\\u" + myArray[i];
    myNewArray[i] = myNewArray[i].substring(1);
}
Run Code Online (Sandbox Code Playgroud)

我获得了这个数组

String myNewArray = {"uAAAA","uBBBB","uCCCC"};
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么做到这一点?

谢谢

Jon*_*oni 7

您必须将字符串解析为十六进制整数,然后转换为chars:

String[] myArray = {"AAAA", "BBBB", "CCCC"};
String[] myNewArray = new String[myArray.length];
for (int i=0; i<myArray.length; i++) {
    char c = (char) Integer.parseInt(myArray[i], 16);
    myNewArray[i] = String.valueOf(c);
}
Run Code Online (Sandbox Code Playgroud)