Thứ Bảy, 6 tháng 12, 2014

String util java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package util;

import java.util.HashMap;

/**
 *
 * @author chieu
 */
public class StringUtil {

    //static final Logger logger = Logger.getLogger(StringUtil.class);
    public static String filterUTF8(String input) {
        char[] u = {
            'Ú', 'Ù', 'Ủ', 'Ũ', 'Ụ', 'U',
            'Ứ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Ư',
            'ú', 'ù', 'ủ', 'ũ', 'ụ',
            'ứ', 'ừ', 'ử', 'ữ', 'ự', 'ư',};
        char[] a = {
            'Á', 'À', 'Ả', 'Ã', 'Ạ', 'A',
            'Ắ', 'Ằ', 'Ẩ', 'Ẵ', 'Ặ', 'Ă',
            'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ', 'Â',
            'á', 'à', 'ả', 'ã', 'ạ',
            'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'ă',
            'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'â'};
        char[] e = {
            'É', 'È', 'Ẻ', 'Ẽ', 'Ẹ', 'E',
            'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ', 'Ê',
            'é', 'è', 'ẻ', 'ẽ', 'ẹ',
            'ế', 'ề', 'ể', 'ễ', 'ệ', 'ê'
        };
        char[] o = {
            'Ó', 'Ò', 'Ỏ', 'Õ', 'Ọ', 'O',
            'Ố', 'Ồ', 'Ỗ', 'Ỗ', 'Ộ', 'Ô',
            'Ớ', 'Ờ', 'Ỡ', 'Ỡ', 'Ợ', 'Ơ',
            'ó', 'ò', 'ỏ', 'õ', 'ọ',
            'ố', 'ồ', 'ổ', 'ỗ', 'ộ', 'ô',
            'ớ', 'ờ', 'ở', 'ỡ', 'ợ', 'ơ'
        };
        char[] i = {
            'Í', 'Ì', 'Ỉ', 'Ĩ', 'Ị', 'I',
            'í', 'ì', 'ỉ', 'ĩ', 'ị',};
        char[] y = {
            'Ý', 'Ỳ', 'Ỷ', 'Ỹ', 'Ỵ', 'Y',
            'ý', 'ỳ', 'ỷ', 'ỹ', 'ỵ',};
        char[] d = {'Đ', 'đ'};
        int length = input.length();
        char current_character;
        boolean added = false;
        StringBuilder strbdr = new StringBuilder(/*length*/);
        for (int j = 0; j < length; j++) {
            added = false;
            current_character = input.charAt(j);
//            System.out.println(current_character);
            for (char c : u) {
                if (c == current_character) {
//                    System.out.println("check "+ c +" "+current_character);
                    strbdr.append('u');
                    added = true;
                    break;
                }
            }
            if (added == true) {
                continue;
            }
            for (char c : a) {
                if (c == current_character) {
                    strbdr.append('a');
                    added = true;
                    break;
                }
            }
            if (added == true) {
                continue;
            }
            for (char c : e) {
                if (c == current_character) {
                    strbdr.append('e');
                    added = true;
                    break;
                }
            }
            if (added == true) {
                continue;
            }
            for (char c : o) {
                if (c == current_character) {
                    strbdr.append('o');
                    added = true;
                    break;
                }
            }
            if (added == true) {
                continue;
            }
            for (char c : i) {
                if (c == current_character) {
                    strbdr.append('i');
                    added = true;
                    break;
                }
            }
            if (added == true) {
                continue;
            }
            for (char c : y) {
                if (c == current_character) {
                    strbdr.append('y');
                    added = true;
                    break;
                }
            }
            if (added == true) {
                continue;
            }
            for (char c : d) {
                if (c == current_character) {
                    strbdr.append('d');
                    added = true;
                    break;
                }
            }
            if (added == true) {
                continue;
            }
            strbdr.append(current_character);
        }
        return strbdr.toString();
    }

    public static String toLowerVnm(String input) {
        String str = input;
        char[] u = {
            'Ú', 'Ù', 'Ủ', 'Ũ', 'Ụ', 'U',
            'Ứ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Ư',};
        char[] u1 = {
            'ú', 'ù', 'ủ', 'ũ', 'ụ', 'u',
            'ứ', 'ừ', 'ử', 'ữ', 'ự', 'ư'};
        char[] a = {
            'Á', 'À', 'Ả', 'Ã', 'Ạ', 'A',
            'Ắ', 'Ằ', 'Ẩ', 'Ẵ', 'Ặ', 'Ă',
            'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ', 'Â',};
        char[] a1 = {
            'á', 'à', 'ả', 'ã', 'ạ', 'a',
            'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'ă',
            'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'â'};
        char[] e = {
            'É', 'È', 'Ẻ', 'Ẽ', 'Ẹ', 'E',
            'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ', 'Ê',};
        char e1[] = {
            'é', 'è', 'ẻ', 'ẽ', 'ẹ', 'e',
            'ế', 'ề', 'ể', 'ễ', 'ệ', 'ê'
        };
        char[] o = {
            'Ó', 'Ò', 'Ỏ', 'Õ', 'Ọ', 'O',
            'Ố', 'Ồ', 'Ỗ', 'Ỗ', 'Ộ', 'Ô',
            'Ớ', 'Ờ', 'Ỡ', 'Ỡ', 'Ợ', 'Ơ',};
        char[] o1 = {
            'ó', 'ò', 'ỏ', 'õ', 'ọ', 'o',
            'ố', 'ồ', 'ổ', 'ỗ', 'ộ', 'ô',
            'ớ', 'ờ', 'ở', 'ỡ', 'ợ', 'ơ'
        };
        char[] ii = {
            'Í', 'Ì', 'Ỉ', 'Ĩ', 'Ị', 'I',};
        char[] ii1 = {
            'í', 'ì', 'ỉ', 'ĩ', 'ị', 'i',};
        char[] y = {
            'Ý', 'Ỳ', 'Ỷ', 'Ỹ', 'Ỵ', 'Y',};
        char[] y1 = {
            'ý', 'ỳ', 'ỷ', 'ỹ', 'ỵ', 'y'
        };
        char[] d = {'Đ',};
        char[] d1 = {'đ'};

        for (int i = 0; i < a.length; i++) {
            str = str.replace(a[i], a1[i]);
        }
        for (int i = 0; i < d.length; i++) {
            str = str.replace(d[i], d1[i]);
        }
        for (int i = 0; i < e.length; i++) {
            str = str.replace(e[i], e1[i]);
        }
        for (int i = 0; i < ii.length; i++) {
            str = str.replace(ii[i], ii1[i]);
        }

        for (int i = 0; i < o.length; i++) {
            str = str.replace(o[i], o1[i]);
        }

        for (int i = 0; i < u.length; i++) {
            str = str.replace(u[i], u1[i]);
        }
        for (int i = 0; i < y.length; i++) {
            str = str.replace(y[i], y1[i]);
        }
        str = str.toLowerCase();
        return str;
    }

 
    public static String removeTextBetweenBracket(String input) {
        String t = input;
        t = t.replaceAll("\\(.*\\)", "");
//        t = "Áo sơ mi caro đỏ tay ngắn[Mã SP: 168]";
        t = t.replaceAll("\\[.*\\]", "");
//        logger.info(t);
//        t = "Áo sơ mi caro đỏ tay ngắn*Mã SP: 168*";
        t = t.replaceAll("\\*.*\\*", "");
//        logger.info(t);
//        t = "Áo sơ mi caro đỏ tay ngắn{Mã SP: 168}";
        t = t.replaceAll("\\{.*\\}", "");
        return t;
    }

    public static String makeBold(String orginal, String relative) {
        String[] t = orginal.replaceAll(" +", " ").split(" ");
        String output = relative.replaceAll(" +", " ").trim();
        output = " " + output + " ";
        for (String str : t) {
            if (str.trim().length() == 0) {
                continue;
            }
            if (relative.contains(str)) {
                output = output.replace(str, "<b>" + str + "</b>");
            }
        }
        output = output.replace("</b> <b>", " ");
        return output.trim();
    }

    public static String removeNonWord(String input) {
        //[^\\p{L}\\p{N}]
        return input.replaceAll("[^\\p{L} ]", "");
    }

    public static String generateIdFromName(String input) {
        if (input == null) {
            return "";
        }
        String output = filterUTF8(input);
        output = toLowerVnm(output);
        output = output.replace(" ", "-").replace("/", "");
        return output;
    }


}

Không có nhận xét nào:

Đăng nhận xét