近期,须要将汉字与字符的非常合串作为combine的输出的key,

这样做是希望,利用hadoop的归并来依照key进行分组,然后,在reduce阶段,拿到的都是一个一个组。

可是,发现,这样的,汉字混合的传做key,居然,在reduce阶段中,接受的的key并非唯一的,于是,考虑利用转码来实现。

终于,问题攻克了。

package test.com.gjob.services;
import java.util.Properties;
public class Test {
public static void main(String[] args) {
String s = "简单介绍";
String tt = gbEncoding(s);
// String tt1 = "你好,我想给你说一个事情";
System.out.println(decodeUnicode("\\u7b80\\u4ecb"));
// System.out.println(decodeUnicode(tt1));
System.out.println(HTMLDecoder.decode("中国"));
String s1 = "\u7b80\u4ecb";
System.out.println(s.indexOf("\\"));
}
public static String gbEncoding(final String gbString) {
char[] utfBytes = gbString.toCharArray();
String unicodeBytes = "";
for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
String hexB = Integer.toHexString(utfBytes[byteIndex]);
if (hexB.length() <= 2) {
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + "\\u" + hexB;
}
System.out.println("unicodeBytes is: " + unicodeBytes);
return unicodeBytes;
} public static String decodeUnicode(final String dataStr) {
int start = 0;
int end = 0;
final StringBuffer buffer = new StringBuffer();
while (start > -1) {
end = dataStr.indexOf("\\u", start + 2);
String charStr = "";
if (end == -1) {
charStr = dataStr.substring(start + 2, dataStr.length());
} else {
charStr = dataStr.substring(start + 2, end);
}
char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。
buffer.append(new Character(letter).toString());
start = end;
}
return buffer.toString();
}
}

最新文章

  1. Predicate接口和Consumer接口
  2. 利用GCTA工具计算复杂性状/特征(Complex Trait)的遗传相关性(genetic correlation)
  3. ofbiz进击 第三节。 各个关键文件的说明与作用
  4. Android TextView多行垂直滚动
  5. Linux性能监控
  6. ABBYY FineReader 12PDF选项卡有保存模式吗
  7. 飞行器的Pitch Yaw Roll概念图解
  8. C# WINFORM 线程中更新UI
  9. 开源框架之TAB控件
  10. Linux JDK+TOMCAT+MYSQL+redis 安装日志
  11. WPF DataTriger 用法示例代码
  12. Js中this机制全解
  13. 深入理解Java虚拟机笔记
  14. PowMod (欧拉推式子 + 指数循环节)
  15. c# 子线程打开子窗体
  16. drupal常用api
  17. ImageMagick命令执行学习笔记(常见于图片预览处)
  18. 29Mybatis_整合ehcache以及应用场景
  19. puma(5300✨) Rails的一个多线程,高并发处理的web server
  20. Javascript 的addEventListener()及attachEvent()对比

热门文章

  1. HTML标签实现图片滚动显示
  2. bug fix: openstack can not run swift for pyeclib and liberasurecode do not match
  3. Windows下通过脚本快速修改IP地址
  4. twitter 监控登陆活动
  5. win7启动后报丢失nscmk.dll解决解决方式
  6. js方法在对象中的状态
  7. math方法集合
  8. c# 委托内部构造
  9. ASP.NET 生命周期(原文翻译)
  10. dede 设置为全动态浏览