1.把List
String careers = "(";
if(null!=careerDataList && careerDataList.size()!=0)
{
for(Map
{
//careers.add(careerData.get("career").toString());
String career = careerData.get("career").toString();
career = career.replace("'", "\\\'");
careers += "'"+career+"',";
}
}
careers = careers.substring(0,careers.length()-1)+")";
2.把数字(123456)转换成(123,456)这样带逗号的格式
P.S. 小数部分采取向上取整
private static String numberBetter(String num)
{
//null ,"","N/A"等 非数字的 不处理
if(null == num || "".equals(num) || "-".equals(num) || "N/A".equals(num))
{
return num;
}
//已经是标准格式 即带,的 直接返回
if(num.contains(","))
{
return num;
}
String number = "";
if(num.contains("."))
{
//手动 向上取整--只要有小数点,就进1
String[] nums = num.split("\\.");
//正数
String numberPart = "";
if(!nums[0].contains("-"))
{
int zheng = Integer.parseInt(nums[0].trim());
int xiao = Integer.parseInt(nums[1].trim());
if(xiao>0)
{
zheng += 1;
}
numberPart = zheng+"";
}else
{
int zheng = Integer.parseInt(nums[0].split("-")[1].trim());
int xiao = Integer.parseInt(nums[1].trim());
if(xiao>0)
{
zheng -= 1;
}
numberPart = zheng+"";
}
return numberBetter(numberPart);
}else
{
StringBuffer numberB = new StringBuffer();
char[] nums = num.toCharArray();
for(int i=0;i
numberB.append(nums[i]);
if(i%3==(nums.length%3-1<0?2:nums.length%3-1))
{
numberB.append(",");
}
}
number = numberB.toString();
}
if(number.endsWith(","))
{
number = number.substring(0,number.length()-1);
}
return number;
}
3.把字符串中的数字和文字分离
P.S.需保证字符串中只出现一处数字(eg:今天是2017年,11月,6日),可以用,切分字符串再使用这个方法
(我这个方法是工作中需要把美元欧元转换成人民币,没有一句话多个数字的情况,最近在研究正则,过几天也许可以补一个字符串允许多个数字的)
private static String[] splitValue(String t_values)
{
String[] strParts = new String[3];
String ex = "";
String fee = "";
String sub = "";
//去逗号,确保后面是纯数字
//t_values = t_values.replace("$", "").replace("美元", "").replace("欧元", "").replace(" ", "");
//正则校验数字
String pattern = "\\d+";
Pattern r = Pattern.compile(pattern);
//经过去小数点 从$945.00每小时变成$945每小时
if(t_values.contains("/"))
{
sub = t_values.split("/")[1];
t_values = t_values.split("/")[0];
String[] subs = t_values.split("");
List
for(String values:subs)
{
Matcher m = r.matcher(values);
if (m.find( ))
{
xiaoshu.add(m.group());
}
}
for(String xs:xiaoshu)
{
fee += xs;
}
if(t_values.indexOf(fee) > 0)
{
ex = t_values.split(fee)[0];
}
}else
{
String[] subs = t_values.split("");
List
for(String values:subs)
{
Matcher m = r.matcher(values);
if (m.find( ))
{
xiaoshu.add(m.group());
}
}
if(null != xiaoshu && xiaoshu.size()!=0)
{
for(String xs:xiaoshu)
{
fee += xs;
}
if(t_values.indexOf(fee) > 0)
{
ex = t_values.split(fee)[0];
if(t_values.split(fee).length==2)
{
sub = t_values.split(fee)[1];
}
}else if(t_values.indexOf(fee) == 0)
{
sub = t_values.substring(xiaoshu.size());
}else
{
System.out.println("*");
}
}else
{
ex = t_values;
}
}
if("".equals(sub))
{
sub = "元";
}else if(sub.startsWith("每"))
{
sub = "元/"+sub.substring(1);
}else
{
sub = "元"+sub;
}
sub = sub.replace("元万", "万元");
strParts[0] = ex;
strParts[1] = fee;
strParts[2] = sub;
return strParts;
}
4.把List转换成Json格式
P.S.由于工作数据库结构及前台js的控件写法,要求value的是数字格式,所以没有拼引号
private static String toJson(List