首页 > 技术文章 > Java 去除字符串前后指定的字符

sinosoft 2019-05-09 19:43 原文

一、去除字符串中的中文字符。

/**
     * 去除字符串中的中文字符
     * 
     * 示例:brandName值为: 中国ABCD88深圳
     * 
     * 返回: ABCD88
     * 
     * @param brandName
     * @return
     */
    private String getLongLoadPermit1(String brandName) {
        String reg = "[\u4E00-\u9FA5]";
        Pattern pat = Pattern.compile(reg);
        Matcher mat = pat.matcher(brandName);
        String longLoadPermit = mat.replaceAll("");
        return longLoadPermit;
    }

二、去除字符串中的中文,并去除得到字符串之后前后的字符。

    /**
     * 去除字符串中的中文,并去除得到字符串之后前后的字符
     * 
     * 示例:brandName值为 : 中国-ABC-D88-深圳
     * 
     * 返回:ABC-D88
     * 
     * @param brandName
     * @return
     */
    private String getLongLoadPermit(String brandName) {
        String reg = "[\u4E00-\u9FA5]";
        Pattern pat = Pattern.compile(reg);
        Matcher mat = pat.matcher("");
        String longLoadPermit = mat.replaceAll("");
        
        //用于检测字符串是否以指定的前缀开始。
        if (longLoadPermit.startsWith("-")) {
            longLoadPermit = longLoadPermit.replaceFirst("-", "");
        }
        
        //用于检测字符串是否以指定的后缀结束。
        if (longLoadPermit.endsWith("-")) {
            longLoadPermit = longLoadPermit.substring(0,
                    longLoadPermit.length() - 1);
        }
        return longLoadPermit;
    }

三、去除字符串前后,指定的字符。

/***
     * 去除字符串前后,指定的字符
     * 
     * 示例 世界-中国-ABC-D88-深圳-福田
     * 
     * 返回 ABC-D88
     * 
     * @param str
     * @param beTrim
     * @return
     */
    public String trimStringWith(String str, char beTrim) {
        int st = 0;
        int len = str.length();
        char[] val = str.toCharArray();
        char sbeTrim = beTrim;
        while ((st < len) && (val[st] <= sbeTrim)) {
            st++;
        }
        while ((st < len) && (val[len - 1] <= sbeTrim)) {
            len--;
        }
        return ((st > 0) || (len < str.length())) ? str.substring(st, len) : str;
    }

 

推荐阅读