为什么80%的码农都做不了架构师?>>>   

package com.jweb.util;import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;/*** * @author Yuanqy**/
public final class FormatUtil {/** ==============IS Base=================== *//** 判断是否为整数(包括负数) */public static boolean isNumber(Object arg) {return NumberBo(0, toString(arg));}/** 判断是否为小数(包括整数,包括负数) */public static boolean isDecimal(Object arg) {return NumberBo(1, toString(arg));}/** 判断是否为空 ,为空返回true */public static boolean isEmpty(Object arg) {return toStringTrim(arg).length() == 0 ? true : false;}/** ==============TO Base=================== *//*** Object 转换成 Int 转换失败 返回默认值 0 <br>* 使用:toInt(值,默认值[选填])*/public static int toInt(Object... args) {int def = 0;if (args != null) {String str = toStringTrim(args[0]);// 判断小数情况。舍弃小数位int stri = str.indexOf('.');str = stri > 0 ? str.substring(0, stri) : str;if (args.length > 1)def = Integer.parseInt(args[args.length - 1].toString());if (isNumber(str))return Integer.parseInt(str);}return def;}/*** Object 转换成 Long 转换失败 返回默认值 0 <br>* 使用:toLong(值,默认值[选填])*/public static long toLong(Object... args) {Long def = 0L;if (args != null) {String str = toStringTrim(args[0]);if (args.length > 1)def = Long.parseLong(args[args.length - 1].toString());if (isNumber(str))return Long.parseLong(str);}return def;}/*** Object 转换成 Double 转换失败 返回默认值 0 <br>* 使用:toDouble(值,默认值[选填])*/public static double toDouble(Object... args) {double def = 0;if (args != null) {String str = toStringTrim(args[0]);if (args.length > 1)def = Double.parseDouble(args[args.length - 1].toString());if (isDecimal(str))return Double.parseDouble(str);}return def;}/*** Object 转换成 BigDecimal 转换失败 返回默认值 0 <br>* 使用:toDecimal(值,默认值[选填]) <br>* 【特别注意】: new BigDecimal(Double) 会有误差,得先转String <br>* 【特别注意】: 由于精度问题,不能涉及到其他数据类型 :float,double..浮点数类型<br>* 【特别注意】:涉及到金额的承载及操作,不允许用浮点数!!*/public static BigDecimal toDecimal(Object... args) {BigDecimal def = BigDecimal.ZERO;if (args != null) {String str = toStringTrim(args[0]);if (args.length > 1)def = new BigDecimal(args[args.length - 1].toString());if (isDecimal(str))return new BigDecimal(str);}return def;}/*** Object 转换成 Boolean 转换失败 返回默认值 false <br>* 使用:toBoolean(值,默认值[选填])<br>* true=[1,true,"true","ok","yes"]<br>*/public static boolean toBoolean(Object bo) {String bool = toString(bo);if (isEmpty(bool) || (!bool.equals("1") && !bool.equalsIgnoreCase("true") && !bool.equalsIgnoreCase("ok") && !bool.equalsIgnoreCase("yes")))return false;elsereturn true;}/*** Object 转换成 String 为null 返回空字符 <br>* 使用:toString(值,默认值[选填])*/public static String toString(Object... args) {String def = "";if (args != null) {if (args.length > 1)def = toString(args[args.length - 1]);Object obj = args[0];if (obj == null)return def;return obj.toString();} else {return def;}}/*** Object 转换成 String[去除所以空格]; 为null 返回空字符 <br>* 使用:toStringTrim(值,默认值[选填])*/public static String toStringTrim(Object... args) {String str = toString(args);return str.replaceAll("\\s*", "");}/** ==============Other Base=================== */public static String getNowTime() {return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());}/** 数字左边补0 ,obj:要补0的数, length:补0后的长度 */public static String leftPad(Object obj, int length) {return String.format("%0" + length + "d", toInt(obj));}/** 小数 转 百分数 */public static String toPercent(Double str) {StringBuffer sb = new StringBuffer(Double.toString(str * 100.0000d));return sb.append("%").toString();}/** 百分数 转 小数 */public static Double toPercent2(String str) {if (str.charAt(str.length() - 1) == '%')return Double.parseDouble(str.substring(0, str.length() - 1)) / 100.0000d;return 0d;}/*** 将byte[] 转换成字符串*/public static String byte2Hex(byte[] srcBytes) {StringBuilder hexRetSB = new StringBuilder();for (byte b : srcBytes) {String hexString = Integer.toHexString(0x00ff & b);hexRetSB.append(hexString.length() == 1 ? 0 : "").append(hexString);}return hexRetSB.toString();}/*** 将16进制字符串转为转换成字符串*/public static byte[] hex2Bytes(String source) {byte[] sourceBytes = new byte[source.length() / 2];for (int i = 0; i < sourceBytes.length; i++) {sourceBytes[i] = (byte) Integer.parseInt(source.substring(i * 2, i * 2 + 2), 16);}return sourceBytes;}/** String 转 Money */public static String toMoney(Object str, String MoneyType) {DecimalFormat df = new DecimalFormat(MoneyType);if (isDecimal(str))return df.format(toDecimal(str)).toString();return df.format(toDecimal("0.00")).toString();}/** 获取字符串str 左边len位数 */public static String getLeft(Object obj, int len) {String str = toString(obj);if (len <= 0)return "";if (str.length() <= len)return str;elsereturn str.substring(0, len);}/** 获取字符串str 右边len位数 */public static String getRight(Object obj, int len) {String str = toString(obj);if (len <= 0)return "";if (str.length() <= len)return str;elsereturn str.substring(str.length() - len, str.length());}/*** 首字母变小写*/public static String firstCharToLowerCase(String str) {Character firstChar = str.charAt(0);String tail = str.substring(1);str = Character.toLowerCase(firstChar) + tail;return str;}/*** 首字母变大写*/public static String firstCharToUpperCase(String str) {Character firstChar = str.charAt(0);String tail = str.substring(1);str = Character.toUpperCase(firstChar) + tail;return str;}/*** List集合去除重复值 只能用于基本数据类型,。 对象类集合,自己写* */@SuppressWarnings({ "rawtypes", "unchecked" })public static List delMoreList(List list) {Set set = new HashSet();List newList = new ArrayList();for (Iterator iter = list.iterator(); iter.hasNext();) {Object element = iter.next();if (set.add(element))newList.add(element);}return newList;}/*** 字符串格式化<br>* 使用占位符:{}*/public static String formatParams(String message, Object[] params) {StringBuffer msg = new StringBuffer();String temp = "";for (int i = 0; i < params.length + 1; i++) {int j = message.indexOf("{}") + 2;if (j > 1) {temp = message.substring(0, j);temp = temp.replaceAll("\\{\\}", FormatUtil.toString(params[i]));msg.append(temp);message = message.substring(j);} else {msg.append(message);message = "";}}return msg.toString();}/*** 字符串格式化<br>* 使用占位符:${xxx} <br>* xxx 为你的Map<key>*/public static String formatParams(String message, Map<String, String> params) {for (Map.Entry<String, String> entry : params.entrySet()) {message = message.replaceAll("\\$\\{" + entry.getKey() + "\\}", entry.getValue());}return message;}/** ============== END =================== */public final static class MoneyType {/** * 保留2位有效数字,整数位每3位逗号隔开 (默认) */public static final String DECIMAL = "#,##0.00";/** * 保留2位有效数字 */public static final String DECIMAL_2 = "0.00";/** * 保留4位有效数字 */public static final String DECIMAL_4 = "0.0000";}private static boolean NumberBo(int type, Object obj) {if (isEmpty(obj))return false;int points = 0;int chr = 0;String str = toString(obj);for (int i = str.length(); --i >= 0;) {chr = str.charAt(i);if (chr < 48 || chr > 57) { // 判断数字if (i == 0 && chr == 45) // 判断 - 号return true;if (i >= 0 && chr == 46 && type == 1) { // 判断 . 号++points;if (points <= 1)continue;}return false;}}return true;}public static String toJSONString(Object obj) {return JSON.toJSONString(obj, SerializerFeature.WriteMapNullValue);}/*** 去除所有空白字符*/public static String trimAll(String str) {return str.replaceAll("\\s*", "");}public static String getUUID() {return UUID.randomUUID().toString().replaceAll("-", "");}public static void main(String[] args) {}
}

转载于:https://my.oschina.net/jweb/blog/540129

【工具】FormatUtil.ava 常用工具类相关推荐

  1. 日常使用计算机工具软件,计算机常用工具软件的使用.doc

    计算机常用工具软件的使用.doc 计算机常用工具软件的使用 摘要:本文初略的介绍了几种计算机常用工具软件的使用,并由此宣扬熟练,灵活的把计算机当作日常生活中处理问题,解决问题的一种重要工具的理念. 关 ...

  2. 计算机常用工具软件教案,常用工具软件教学计划.doc

    淄博师专2011-2012学年度第二学期教学计划 主讲教师王西玲教研室主任董钰系负责人范东升课程常用工具软件系信息科学系专业网络管理班级11网络.11现教编号06059讲课学时15习题课学时实验课学时 ...

  3. 与python相关的爬虫工具_python爬虫常用工具集合

    一.常用模块 1.requests模块,网络请求 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比url ...

  4. 计算机常用工具软件教案,常用工具软件教案.doc

    文档介绍: 课题:网络遨游--网络软件 教学目的 熟练掌握下载软件的使用方法. 熟练掌握邮件处理软件的使用方法. 熟练掌握FTP工具软件的使用方法. 熟练掌握搜索引擎的使用方法. 熟练掌握网络加速软件 ...

  5. ddos工具linux,DDoS常用工具大全

    网络攻防是发生在第五空间的对抗和战争.这是一个动态的过程,无论攻击者还是防御者都在实战中寻求进步.攻防双方的"兵器"就在这个战场中不断磨砺和进化.绿盟科技关注攻防的最新进展,为了帮 ...

  6. 4个常用的计算机应用软件,信息技术应用--常用计算机工具软件4常用工具软件单元四.pdf...

    信息技术基础-- 信息技术基础-- 常用计算机工具软件 常用计算机工具软件 信息技术应用--常用计算机工具软件 信息技术应用--常用计算机工具软件 单元四 使用图形图像工具软件 单元四 使用图形图像工 ...

  7. seo常用工具,seo常用工具搜行者SEO

    SEO比较常用的工具有哪些 1.站长工具,这个就不用说了,很强大,你可以查关键词指数,挖掘关键词,查网站关键词的密度,查询网站关键词的排名,查询网站综合SEO,查询对手网站的seo情况等2.流量统计, ...

  8. 五个常用计算机应用软件6,信息技术应用--常用计算机工具软件5常用工具软件单元五.pdf...

    信息技术基础-- 信息技术基础-- 常用计算机工具软件 常用计算机工具软件 信息技术应用--常用计算机工具软件 信息技术应用--常用计算机工具软件 单元五 使用动画制作工具软件 单元五 使用动画制作工 ...

  9. matlab按图像边缘抠图_ps快速选择工具|抠图常用工具(一)

    教程领到手,学习不用愁!领↑↑↑ 还有朋友不知道高手课吗?高手课,精品中的精品课程,一套免费教程解锁一门技能. 说到抠图,它也是在学习Photoshop过程中必须掌握的重要技术之一,它常常被用来把图像 ...

最新文章

  1. 【scala】集和映射
  2. windows分区的理解
  3. datanode无法启动_Hadoop DataNode启动和初始化过程
  4. Redis sorted set 类型操作及常用命令
  5. android item三种,Android RecyclerView中的ItemDecoration的几种绘制方法
  6. poj 3258 River Hopscotch 二分答案
  7. 法国spin高等计算机学校,spin-去展网
  8. 数据结构笔记(二十)--二叉树的存储
  9. Android实战简易教程-第七十三枪(拨打、接听电话自动免提)
  10. 手机java版怎么换皮肤_手机QQ皮肤更换方法(安卓版)
  11. CSDN写博客的小技巧
  12. 利用python通过拟合优度检验判别数据是否为正态分布
  13. 安卓手机远程连接linux系统,电脑(Linux/Windows)使用SSH远程登录安卓(Android)手机实现无线传输和管理文件(图文详解)-Go语言中文社区...
  14. 多多情报通:拼多多推广账户金额可以通用吗?里面钱可以提出来吗?
  15. 服务器cpu都有哪些型号,盘点目前性价比最高的CPU有哪些型号
  16. Linux攻关之基础模块七 命令总结
  17. Linux学习笔记Day01-01在虚拟机中下载Linux系统(centos)详细步骤,vmtools安装
  18. 勒索软件攻击的第一步就是钓鱼邮件 从概念到防御思路 这里面都有了
  19. 在同一Android应用程序内,信息安全技术题库:Android中同一个应用程序的所有进程可以属于不同用户。()...
  20. rop检查_糖尿病、高血压人群为啥要定期检查眼睛?

热门文章

  1. Google 发布最新 IDC 能源消耗报告
  2. LINUX下FORK的运行机制详细解析
  3. 经常在命令提示符中所使用的命令
  4. NGUI_2.6.3_系列教程三
  5. 多租户系统技术优越性及架构选型---springCloud工作笔记167
  6. Spring Security OAuth2.0_实现分布式认证授权_集成测试_Spring Security OAuth2.0认证授权---springcloud工作笔记155
  7. Unity3D引擎工作笔记0002---Unity3D 5下载安装
  8. 测试工作笔记001---web测试_工作经验_注意点_随时更新
  9. Maven工作笔记003---公司只允许代理上网_给maven配置代理下载jar包
  10. 数据库工作笔记004---mysql对结果字段进行判断的函数_Case when等