A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有这样一段字符串,String str = 本书共分三个部分内容{uFF0C}{u4ECB}{u7ECD}{u4E86}{u9AD8}{u7B49}{u6570}{u5B66};
后面大括号中是unicode编码,怎么把它们转换成汉字,并且传递给 str ???

5 个回复

倒序浏览
  1. public static void main(String args[])
  2.         {
  3.                 String str="\uFF0C\u4ECB\u7ECD\u4E86\u9AD8\u7B49\u6570\u5B66";
  4.                 System.out.println(str);
  5.         }
复制代码
{:soso_e153:}是高数!吓死我了。。。。



回复 使用道具 举报
String str1=new String(str.getBytes("unicode"),"gbk");
str是你想要转换编码方式的字符串
str1是转换成gbk编码方式的字符串
回复 使用道具 举报
看来大家是理解错了,str里面的是字符串,{uFBCA}也是字符串,如果不把它转换成unicode类型,是无法实现转换的。而且我要处理的文件有十多万行,更不可能把它们手动敲进去
回复 使用道具 举报

  1. public class Test{
  2. public static void main(String[] args) {
  3.   String str = "本书共分三个部分内容{uFF0C}{u4ECB}{u7ECD}{u4E86}{u9AD8}{u7B49}{u6570}{u5B66}";
  4.   String[] parts = str.split("[url=file://\\{|\\}\\{|\\]\\{|\\}\\{|\\[/url]}");
  5.   StringBuffer sb = new StringBuffer();
  6.   for (int i = 0; i < parts.length; i++) {
  7.    if(parts[i].matches("^u[0-9A-F]{4}$")){
  8.     sb.append((char)Integer.valueOf(parts[i].substring(1), 16).intValue());
  9.    }else{
  10.     sb.append(parts[i]);
  11.    }
  12.   }
  13.   System.out.println(sb);
  14.   //输出结果:
  15.   //本书共分三个部分内容,介绍了高等数学
  16. }
  17. }

复制代码
回复 使用道具 举报
系统好像是把我的代码改啦。
以上 str.split() 方法中的参数是 \\{|\\}\\{|\\}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马