新手求助,关于String的问题!高手指教。
以下代码:
String str1= "\\u ";
String str2= "5B66 " ;
str2=str1.concat(str2);
得到的输出为:\u5B66
如果我想输出 \u5B66对应的unicode编码: "学 "!
应该对str2做怎样的处理??
为什么Java没有对连接起来的字符做第2次转义处理呢??
我google了一下说可以通过正则表达式来处理这里的str2!
那么应该具体怎么编码呢?
请高手指教。谢谢。
------解决方案--------------------我先验证了一下5B66是学。不错。
所谓能不能输出,要看你的Render,比如Console或者Swing界面的CodePage。
一般来讲中文是936的。你要转码给它输出。
------解决方案--------------------楼上的,搂主是问你 "\\u5B66 "这个字怎么输出,你会输出的话就写个例子,不会的话表胡吹。
哦也想知道java用什么办法输出,帮顶一个
------解决方案--------------------System.out.println((char)(Integer.parseInt( "\\u5B66 ".substring(2),16)));
将字符串 "\\u5B66 ",除掉表示16进制的前缀表示 "\\u "
然后按16进制,转成Integer,再转成char
就可以了,测试输出:
学
如果参考你上面的,就不要再添加前缀,直接将 "5B66 "按16进制转int,再转char,就可以了
------解决方案-------------------- String b = "\\u5B66 ".substring(2);
int a = Integer.parseInt( "\\u5B66 ".substring(2), 16);
byte[] c = new byte[2];
c[0] = (byte) ((a & 0xff00) > > 8);
c[1] = (byte) (a & 0x00ff);
String c1 = null;
try {
c1 = new String(c, "UTF16 ");
} catch (Unsupported
EncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(c1);
我很忙,我不想写code。