前记:
发布公告这个功能点,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, "'");
网友评论