我有以下问题,我有一个这样的字符串数组
String[] myArray = {"AAAA","BBBB","CCCC"};
我的目的是创建另一个类似的数组
String myNewArray = {"\uAAAA","\uBBBB","\uCCCC"};
问题是如果我尝试使用循环创建数组
for (int i=0; i<myArray.length; i++) {
myNewArray[i] = "\u" + myArray[i];
}
如果我使用这样的循环,我会收到“无效的 unicode 错误”
for (int i=0; i<myArray.length; i++) {
myNewArray[i] = "\\u" + myArray[i];
}
我得到这个数组
String myNewArray = {"\\uAAAA","\\uBBBB","\\uCCCC"};
如果我使用这个循环
for (int i=0; i<myArray.length; i++) {
myNewArray[i] = "\\u" + myArray[i];
myNewArray[i] = myNewArray[i].substring(1);
}
我得到这个数组
String myNewArray = {"uAAAA","uBBBB","uCCCC"};
有人知道我该怎么做吗?
谢谢
最佳答案
您必须将字符串解析为十六进制整数,然后转换为 char
s:
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);
}
关于java - 使用转义 java 创建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17209592/