hadoop中汉字与英文字符混合的keyword做为combine的key的问题
2024-09-24 05:24:34
近期,须要将汉字与字符的非常合串作为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();
}
}
最新文章
- Predicate接口和Consumer接口
- 利用GCTA工具计算复杂性状/特征(Complex	Trait)的遗传相关性(genetic	correlation)
- ofbiz进击 第三节。 各个关键文件的说明与作用
- Android TextView多行垂直滚动
- Linux性能监控
- ABBYY FineReader 12PDF选项卡有保存模式吗
- 飞行器的Pitch Yaw Roll概念图解
- C# WINFORM 线程中更新UI
- 开源框架之TAB控件
- Linux JDK+TOMCAT+MYSQL+redis 安装日志
- WPF DataTriger 用法示例代码
- Js中this机制全解
- 深入理解Java虚拟机笔记
- PowMod (欧拉推式子 + 指数循环节)
- c# 子线程打开子窗体
- drupal常用api
- ImageMagick命令执行学习笔记(常见于图片预览处)
- 29Mybatis_整合ehcache以及应用场景
- puma(5300✨) Rails的一个多线程,高并发处理的web server
- Javascript 的addEventListener()及attachEvent()对比