Java小代码(可直接用)

1.把List<Map<String,Object>>转换成(' ',' ',...)格式的字符串

String careers = "(";
        if(null!=careerDataList && careerDataList.size()!=0)
        {
            for(Map<String, Object> careerData:careerDataList)
            {
                //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<nums.length;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<String> xiaoshu = new ArrayList<String>();
                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<String> xiaoshu = new ArrayList<String>();
                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<Map<String, Object>> list)
    {
        String result = "";
        if(list != null && list.size()!=0)
        {
            result = "[";
            for(Map<String, Object> map:list)
            {
                if(map != null && map.size()!=0)
                {
                    result += "{";
                    Set<Entry<String, Object>> entrySet = map.entrySet();
                    for(Entry<String, Object> entry:entrySet)
                    {
                        if("value".equals(entry.getKey()))
                        {
                            result += "'"+entry.getKey()+"':"+entry.getValue()+",";
                        }else
                        {
                            result += "'"+entry.getKey()+"':'"+entry.getValue()+"',";
                        }
                    }
                    result = result.substring(0,result.length()-1);
                    result += "},";
                }
            }
            result = result.substring(0,result.length()-1);
            result += "]";
        }
        return result;
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值