/**
* 中括号处理工具类
*/
public class BracketUtils {
/**
* 对象中的所有String类型的属性的值去除中括号以及里面的值
* @param obj
* @param <T>
* @return
* @throws Exception
*/
public static <T> T getBracketOutValues(T obj) throws Exception {
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) { //遍历属性
String name = field.getName();
name = name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法
String type = field.getGenericType().toString(); //获取属性的类型
if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名
Method get = obj.getClass().getMethod("get"+name);
String value = (String) get.invoke(obj); //调用getter方法获取属性值
Method set = obj.getClass().getDeclaredMethod("set" + name, String.class);
set.invoke(obj, getBracketOutValues(value));
}
}
return obj;
}
/**
* 判断对象中的String属性是否含有中括号
* @param obj
* @param <T>
* @return true 有 ,false 没有
* @throws Exception
*/
public static <T> Boolean isHaveBracket(T obj) throws Exception {
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) { //遍历属性
String name = field.getName();
name = name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法
String type = field.getGenericType().toString(); //获取属性的类型
if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名
Method get = obj.getClass().getMethod("get"+name);
String value = (String) get.invoke(obj); //调用getter方法获取属性值
Boolean haveBracket = isHaveBracket(value);
if(haveBracket){
return true;
}
}
}
return false;
}
/**
* 获取中括号里面的值
* @param s
* @return
*/
public static String getBracketValues(String s){
if(!StringUtils.isNullOrEmpty(s)) {
if (s.contains("[") && s.contains("]")) {
String substring = s.substring(s.indexOf("[") + 1, s.indexOf("]"));
return substring;
}
}
return s;
}
/**
* 获取括号外面的值
* @param s
* @return
*/
public static String getBracketOutValues(String s){
if(!StringUtils.isNullOrEmpty(s)) {
if (s.contains("[") && s.contains("]")) {
String substring = s.substring(0, s.indexOf("["));
return substring;
}
}
return s;
}
/**
* 是否存在中括号
* @param s
* @return
*/
public static Boolean isHaveBracket(String s){
if(!StringUtils.isNullOrEmpty(s)) {
return s.contains("[") && s.contains("]");
}
return false;
}
}
帮助到您请点赞关注收藏谢谢!!!