xufei před 4 roky
rodič
revize
36615f166c

+ 34 - 0
src/main/java/com/winhc/bigdata/udf/ContainCompany.java

@@ -0,0 +1,34 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * @Author: π
+ * @Description:包含公司
+ */
+public class ContainCompany extends UDF {
+
+    public Boolean evaluate(String name) {
+        if (StringUtils.isNotBlank(name)) {
+            List<String> list = Arrays.asList(name.split(",")).stream().filter(x -> x.length() > 4).collect(Collectors.toList());
+            if (list.size() > 0) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
+
+    public static void main(String[] args) {
+        Boolean eval = new ContainCompany().evaluate("");
+        System.out.println(eval);
+    }
+}

+ 37 - 0
src/main/java/com/winhc/bigdata/udf/NameJudge.java

@@ -0,0 +1,37 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * @Author: π
+ * @Description: 文书原被告判断
+ */
+public class NameJudge extends UDF {
+
+    public String evaluate(String name,String yg_name,String bg_name) {
+        if(StringUtils.isNotBlank(name)){
+            if(StringUtils.isNotBlank(yg_name)&&yg_name.contains(name)){
+                return "y";
+            }else if(StringUtils.isNotBlank(bg_name)&&bg_name.contains(name)){
+                return "b";
+            }
+        }
+        return "";
+    }
+
+    public static void main(String[] args) {
+        String res = new NameJudge().evaluate("中国农业银行股份有限公司化州市支行", "魏贤永\n" +
+                "马亚燕\n" +
+                "魏国民\n" +
+                "钟红辉\n" +
+                "魏亚德\n" +
+                "陈裕梅", null);
+        System.out.println(res);
+    }
+}

+ 21 - 21
src/main/java/com/winhc/bigdata/udf/StringReplaceChar.java

@@ -2,41 +2,41 @@ package com.winhc.bigdata.udf;
 
 import com.aliyun.odps.udf.UDF;
 import com.aliyun.odps.utils.StringUtils;
+
+import java.util.Arrays;
+import java.util.List;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 /**
  * @Author: π
  * @Description: 统一分割符
  */
 public class StringReplaceChar extends UDF {
-    private static final Pattern pattern = Pattern.compile("[^\\u4e00-\\u9fa5a-zA-Z \\(\\)().]+");
+    private static final Pattern pattern = Pattern.compile("[^\\u4e00-\\u9fa5a-zA-Z\\(\\)()]+");
+
     public String evaluate(String val) {
-        if(StringUtils.isNotBlank(val)){
+        if (StringUtils.isNotBlank(val)) {
 
-            StringBuilder b = new StringBuilder();
-            String[] arr = pattern.split(val);
-            int iMax = arr.length - 1;
-            for(int i = 0; ; i++){
-                b.append(arr[i]);
-                if (i == iMax)
-                    return b.toString();
-                b.append(",");
-            }
-        }else
+            String arr = val.replaceAll("、", ",")
+                    .replaceAll(";", ",")
+                    .replaceAll(",", ",")
+                    .replaceAll(" ", ",")
+                    .replaceAll("。", ",")
+                    .replaceAll(";", ",")
+                    .replaceAll(":", ",")
+                    .replaceAll("\\s+", ",");
+            List<String> list = Arrays.asList(arr.split(",")).stream().filter(m -> m.length() > 1).collect(Collectors.toList());
+            return String.join(",", list);
+        }else{
             return "";
-//        return StringUtils.isNotBlank(val) ? val.replaceAll("、",",")
-//                .replaceAll(";",",")
-//                .replaceAll(",",",")
-//                .replaceAll(" ",",")
-//                .replaceAll(":",",")
-//                .replaceAll(":",",")
-//                : "";
+        }
     }
 
     public static void main(String[] args) {
-        String res = new StringReplaceChar().evaluate("中国,人123;za 早上5:xx`ss@张思");
+        String res = new StringReplaceChar().evaluate("2015)深南法蛇民初第883-887受理郑委,曹   连云,庄忠杰,曹元洪,曹硕");
         System.out.println(res);
-        String res1 = new StringReplaceChar().evaluate("");
+        String res1 = new StringReplaceChar().evaluate("宜城兴荣民族塑料制品有限公司、屈万英(公民身份号码:**************504X)、何秋实(公民身份号码:**************0055)、曾娟娟(公民身份号码:**************0040)、王琴(公民身份号码:**************5523)、丁国红(公民身份号码:**************2016)");
         System.out.println(res1);
     }
 }

+ 32 - 0
src/main/java/com/winhc/bigdata/udf/substr2.java

@@ -0,0 +1,32 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.util.regex.Pattern;
+
+/**
+ * @Author: XuJiakai
+ * @Date: 2020/5/14 16:26
+ * @Description: 字符串去符号
+ */
+public class substr2 extends UDF {
+
+    public String evaluate(String s) {
+        String s1 ="";
+         if(StringUtils.isNotBlank(s)) {
+           s1 = s.replace("http://","").replace("https://","")
+                    .split("/")[0];
+
+        }
+
+        return s1;
+    }
+
+    public static void main(String[] args) {
+//        String re = new substr2().evaluate("http://121.17.174.7:6225/ilive/www/jsp/showPlay.jsp?playId=C0D015B8_C384_16D2_DB9B_492A32E7D442", "\\?");
+        String re = new substr2().evaluate("http://hsjzfy.hbsfgk.org:80/ktggInfo.jspx?fyid=282&bh=027C5A33DA0CAB0058DCE78295822544&isapp=");
+        System.out.println(re);
+    }
+}
+

+ 44 - 0
src/main/java/com/winhc/bigdata/udf/verify.java

@@ -0,0 +1,44 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.sql.Array;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+/**
+ * @Author: π
+ * @Description: 经纬度判断或者转换
+ */
+public class verify extends UDF {
+
+    private static String LONGITUDE = "^[\\-\\+]?(0?\\d{1,2}\\.\\d{1,15}|1[0-7]?\\d{1}\\.\\d{1,15}|180\\.0{1,15})$";
+    private static String LATITUDE = "^[\\-\\+]?([0-8]?\\d{1}\\.\\d{1,15}|90\\.0{1,15})$";
+
+    public String evaluate(String longitude, String latitude) {
+        StringBuilder s = new StringBuilder();
+
+        if (StringUtils.isNotBlank(longitude) && StringUtils.isNotBlank(latitude)) {
+            if (Pattern.matches(LONGITUDE, longitude) && Pattern.matches(LATITUDE, latitude)) {
+                s.append(longitude).append(",").append(latitude);
+
+            } else if (Pattern.matches(LONGITUDE, latitude) && Pattern.matches(LATITUDE, longitude)) {
+                s.append(latitude).append(",").append(longitude);
+            }
+        } else {
+            s.append(",");
+        }
+        return s.toString();
+    }
+
+    public static void main(String[] args) {
+        String latitude = "-116.195625548279890";
+        String longitude = "-39.928301139829350";
+        String res = new verify().evaluate(longitude, latitude);
+        System.out.println(res);
+    }
+}