|
@@ -0,0 +1,29 @@
|
|
|
|
+package com.winhc.bigdata.udf;
|
|
|
|
+
|
|
|
|
+import com.aliyun.odps.udf.UDF;
|
|
|
|
+import com.aliyun.odps.utils.StringUtils;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author: XuJiakai
|
|
|
|
+ * 2021/1/16 12:14
|
|
|
|
+ */
|
|
|
|
+public class StringToDBC extends UDF {
|
|
|
|
+ public String evaluate(String val) {
|
|
|
|
+ if (StringUtils.isEmpty(val)) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ char[] c = val.toCharArray();
|
|
|
|
+ for (int i = 0; i < c.length; i++) {
|
|
|
|
+ if (c[i] == 12288) {
|
|
|
|
+ //全角空格为12288,半角空格为32
|
|
|
|
+ c[i] = (char) 32;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if (c[i] > 65280 && c[i] < 65375) {
|
|
|
|
+ //其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
|
|
|
|
+ c[i] = (char) (c[i] - 65248);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return new String(c);
|
|
|
|
+ }
|
|
|
|
+}
|