Pārlūkot izejas kodu

feat: 添加全角转半角函数

许家凯 4 gadi atpakaļ
vecāks
revīzija
4a4fc0569c
1 mainītis faili ar 29 papildinājumiem un 0 dzēšanām
  1. 29 0
      src/main/java/com/winhc/bigdata/udf/StringToDBC.java

+ 29 - 0
src/main/java/com/winhc/bigdata/udf/StringToDBC.java

@@ -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);
+    }
+}