Java去除首尾指定字符

前记:
发布公告这个功能点,mysql数据表涉及不合理,公告的标题和内容作为列表一起存储在一个"content"字段里,原先项目是由Python编写,存进表的时候格式特定为:u'www',u'ttt' 。查了一下,u应该是和Python语法有关,用在字符串前面,以Unicode编码,防止中文乱码。用Java重构Python代码,由于线上已有数据,只能按照之前格式存储,也因此在查看公告详情的时候,需要对数据表的content字段做拆分(split)处理,然后截取(substring)第一个字符,再对字符串首尾单引号做一个去除处理,我将此封装到一个公共的方法里,代码如下:

/**
 * 去除首尾指定字符
 * @param str   字符串
 * @param element   指定字符
 * @return
 */
public static String trimFirstAndLastChar(String str, String element){
    boolean beginIndexFlag = true;
    boolean endIndexFlag = true;
    do{
        int beginIndex = str.indexOf(element) == 0 ? 1 : 0;
        int endIndex = str.lastIndexOf(element) + 1 == str.length() ? str.lastIndexOf(element) : str.length();
        str = str.substring(beginIndex, endIndex);
        beginIndexFlag = (str.indexOf(element) == 0);
        endIndexFlag = (str.lastIndexOf(element) + 1 == str.length());
    } while (beginIndexFlag || endIndexFlag);
    return str;
}

调用的时候只需要传参即可。示例如下:

//字符串contextArr为'发布公告新test',u'倒计时最后4天!!!'
String[] contextArr = StringUtils.split(context, ",");
String title = contextArr[0];
String content = contextArr[1];
//去掉首尾字符串'
title = StringUtil.trimFirstAndLastChar(title, "'");
content = StringUtil.trimFirstAndLastChar(content, "'");

你可能感兴趣的:(Java去除首尾指定字符)