# moon-util **Repository Path**: wonhyoo/moon-util ## Basic Information - **Project Name**: moon-util - **Description**: 这是一个 Java 工具库 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-07-08 - **Last Updated**: 2022-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 这是一个 java 工具库 `MoonUtil`是一个的`java`工具库,也是在这小几年的工作中所遇到的问题的一个归纳, 也在实际工作中解决了一些实际问题,它将一些常用的操作通过静态方法封装用来提高开发效率。 希望能在实际应用中帮助到更多人,和得到更多人的帮助和完善! ### 安装 要求环境`JDK1.8+`,除了`com.moon.core`之外的包是依赖一些第三方`jar`的, 需要根据实际情况添加,代码中也尽量给出了友好提示,**`github`的代码可能和`maven`不同, `github`是最新的,现有`api`名称和功能不会更改,过时方法以主版本为单位视情况可能在下一个主版本删除** ``` xml com.github.moon-util moon-util 0.0.33 ``` ### 部分特点介绍 - `StringUtil.discardXxx(..)`以`discard`开头的方法;以前的一些工具库中通常有`substringBefore`、 `substringAfter`这样的方法,但是如果我们想要保留某个子串以及它前面的内容呢?目前的没有,于是这里提供了 `discardAfter`意为“丢弃...之后”即为保留它以及它之前的内容; - `Excel`支持,此工具类基于`POI`参考`HTML`中`table`标签实现了`ExcelUtil`,可以很方便的用层级关系导出`Excel`,如: ``` // 最好用 lambda 表达式吧 ExcelUtil.xlsx().sheet('sheetName', sheetFactory -> { sheetFactory.row(rowFactory -> { rowFactory.next("姓名"); // 创建一个单元格并设置单元格值为 "姓名" rowFactory.cell().val("年龄").styleAs("classname"); // 创建一个单元格并设置单元格值为 "年龄",同时应用应用样式"classname" rowFactory.cell(1, 2).val("家庭住址"); // 创建单元格,并合并单元格,然后设置单元格内容 // 注:样式上面已经用过了,但这里才定义,这是有效的 // ExcelUtil 同时参照 html 的同时参照了 css,将样式统一管理,然后通过 classname 引用,这样方便个单元格样式重用 // 另一方面,POI 中样式是有上限的,统一管理也能避免重复创建样式 // 而且不一定要在 rowFactory 上定义,可以在任何 xxxxFactory 上定义,并引用在任意位置 rowFactory.definitionStyle("classname", (style, font) -> { font.setBold(true); // 字体加粗 style.setFont(font); }); }); }); ``` > `ExcelUtil`还实现了基于注解的导出(sheetFactory.table(..)),目前已实现复杂表头、列排序、样式等,但还未实现表头样式; - 日期相关工具类:`CalendarUtil`、`DateUtil`、`DateTimeUtil`、`Datetime`; - `IteratorUtil`迭代器,可以迭代目前能想到的任何集合、数组、数据库结果集`ResultSet`甚至文件等,还可以 按需求将一个集合拆分成多个固定长度的集合等; - 其他集合工具类`CollectUtil`、`SetUtil`、`ListUtil`、`FilterUtil`、`GroupUtil`、`Collects`等; - 表单验证(挺全面的,可以看看):`TestUtil`、`ValidationUtil`和`ValidatorUtil`; - 字符串表达式执行工具: `RunnerUtil`可以执行符合`java`语义的任何表达式,如:`RunnerUtil.run("1 + 1 * 5")`; > `RunnerUtil`还可以执行方法等; ### 反馈或建议 1. 收到的问题都会尽快修改,最快可能一天不只发布一个版本(你看版本号`0.0.33`就知道了!)! 1. 提`Issue`或者`PR`; 2. 作者微信(这个更方便)