很用的JAVA工具类


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;




/**
 * 1. List数据转行文本数据
 * 2. 行文本数据转List数据
 * 3. List数据转行Json数据 
 * 4. 行Json数据转List数据
 * 5. 行文本数据转行Json数据
 * 6. 行Json数据转行文本数据 
 * 
 * 说明:List数据,一般是数据库查出的原始数据
 * 行文本数据,用于传输的文本间隔格式的数据
 * Json数据,用于传输的Json格式的数据(Json中的数据为行记录的Map,key为字段名 )
 * 另,Json中为List类型的数据,暂不考虑,跟行文本相似,解析没有行文本快
 * 

public class DataConvert {


private static String FIELDS_SEPARATOR = ",";

/* 1. List数据转行文本数据 start */

public static boolean convertListToLines(List list,List lines, String fields,String separator){
lines.addAll(convertListToLines(list,fields,separator));
return true;
}

public static List convertListToLines(List list,String fields,String separator){
String[] fieldArray = fields.split(FIELDS_SEPARATOR);
return convertListToLines(list,fieldArray,separator);
}

public static List convertListToLines(List list,String[] fieldArray,String separator){
List lines = new ArrayList();
for(Object obj:list){
StringBuilder line = new StringBuilder();
if(obj instanceof Map){
Map map = (Map)obj;
for(String str:fieldArray){
line.append(map.get(str).toString()).append(separator);
}
}
lines.add(line.substring(0,line.length()-separator.length()));
}
return lines;
}

/* 1. List数据转行文本数据 end */



/* 2. 行文本数据转List数据 start */

public static boolean convertLinesToList(List lines,List list, String fields,String separator){
list.addAll(convertLinesToList(lines,fields,separator));
return true;
}

public static List convertLinesToList(List lines,String fields,String separator){
String[] fieldArray = fields.split(FIELDS_SEPARATOR);
return convertLinesToList(lines,fieldArray,separator);
}

public static List convertLinesToList(List lines,String[] fieldArray,String separator){
List list = new ArrayList();
for(Object obj:lines){
String[] fields = obj.toString().split(separator);
int index=0;
Map map = new HashMap();
for(String str:fieldArray){
map.put(str, fields[index++]);
}
list.add(map);
}
return list;
}

/* 2. 行文本数据转List数据 end */


/* 3. List数据转行Json数据 start */

public static boolean convertListToJson(List list,List jsonList,String separator){
jsonList.addAll(convertListToJson(list,separator));
return true;
}

public static List convertListToJson(List list,String separator){
List jsonList = new ArrayList();
for(Object obj:list){
if(obj instanceof Map){
jsonList.add(JsonConvert.SerializeObject((Map)obj));
}
}
return jsonList;
}

/* 3. List数据转行文本数据 end */


/* 4. 行Json数据转List数据 start */

public static boolean convertJsonToList(List jsonList,List list,String separator){
list.addAll(convertJsonToList(jsonList,separator));
return true;
}

public static List convertJsonToList(List jsonList,String separator){
List list = new ArrayList();
for(Object obj:jsonList){
Map map = (Map)JsonConvert.DeserializeObject(obj.toString(), Map.class);
}
return list;
}

/* 4. List数据转行文本数据 end */


/* 5. 行文本数据转行Json数据 start */

public static boolean convertLinesToJson(List lines,List jsonList, String fields,String separator){
jsonList.addAll(convertLinesToJson(lines,fields,separator));
return true;
}

public static List convertLinesToJson(List lines,String fields,String separator){
String[] fieldArray = fields.split(FIELDS_SEPARATOR);
return convertLinesToJson(lines,fieldArray,separator);
}

public static List convertLinesToJson(List lines,String[] fieldArray,String separator){
List jsonList = new ArrayList();
for(Object obj:lines){
String[] lineArray = obj.toString().split(separator);
int index=0;
Map map = (Map)obj;
for(String str:fieldArray){
map.put(str, lineArray[index++]);
}
jsonList.add(JsonConvert.SerializeObject((Map)obj));
}
return jsonList;
}


/* 5. 行文本数据转行Json数据 end */


/* 6. 行Json数据转行文本数据 start */

public static boolean convertJsonToLines(List jsonList,List lines, String fields,String separator){
lines.addAll(convertJsonToLines(jsonList,fields,separator));
return true;
}

public static List convertJsonToLines(List jsonList,String fields,String separator){
String[] fieldArray = fields.split(FIELDS_SEPARATOR);
return convertJsonToLines(jsonList,fieldArray,separator);
}

public static List convertJsonToLines(List jsonList,String[] fieldArray,String separator){
List lines = new ArrayList();
for(Object obj:jsonList){
Map map = (Map)JsonConvert.DeserializeObject(obj.toString(), Map.class);
StringBuilder line = new StringBuilder();
for(String str:fieldArray){
line.append(map.get(str).toString()).append(separator);
}
lines.add(line.substring(0,line.length()-separator.length()));
}
return lines;
}


/* 6. 行Json数据转行文本数据 end */
public static Map convertListToMap(List data,String key){
Map ret = new HashMap();
for(Object obj:data){
if(obj instanceof Map){
Map record = (Map)obj;
ret.put(record.get(key),record);
}
}
return ret;
}



/* 7. List数据Map数据 start */


/* 7. List数据Map数据 end */


// 将驼峰风格替换为下划线风格
public static String toUnderline(String str) {
   Matcher matcher = Pattern.compile("[A-Z]").matcher(str);
   StringBuilder builder = new StringBuilder(str);
   for (int i = 0; matcher.find(); i++) {
       builder.replace(matcher.start() + i, matcher.end() + i, "_" + matcher.group().toLowerCase());
   }
   if (builder.charAt(0) == '_') {
       builder.deleteCharAt(0);
   }
   return builder.toString();
}




// 将下划线风格替换为驼峰风格
public static String toCamelhump(String str) {
str = str.toLowerCase();
   Matcher matcher = Pattern.compile("_[a-z]").matcher(str);
   StringBuilder builder = new StringBuilder(str);
   for (int i = 0; matcher.find(); i++) {
       builder.replace(matcher.start() - i, matcher.end() - i, matcher.group().substring(1).toUpperCase());
   }
   if (Character.isUpperCase(builder.charAt(0))) {
       builder.replace(0, 1, String.valueOf(Character.toLowerCase(builder.charAt(0))));
   }
   return builder.toString();


public static void main(String[] args) {
System.out.println(toCamelhump("HELLO_ASDF"));
System.out.println(toUnderline("helloWord,testWasdf,asdjfRsdf"));
}



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值