一种特定的场景,需要检测指定字符串的长度,但是一个中文字需要占用2个长度,另外还需要截图字符串长度,指定的长度也是按1个中文字符2个长度来算 代码如下,说明写在注释里: /** * 判断是否为汉字 */ private static boolean isChineseChar(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOG…

2024-04-04 0条评论 94点热度 0人点赞 admin 阅读全文

如题,分享自用的阿拉伯数字金额转成中文大写,支持负数,单位元,小数支持2位数(角、分),网上摘录的,看到的比较靠谱的一个, 测试结果如下: System.out.println(NumberToWords.convertToWords(-3.14)); // 负叁元壹角肆分 System.out.println(NumberToWords.convertToWords(10002)); // 壹万零贰元整 public class NumberToWords { private static final Strin…

2023-11-25 0条评论 258点热度 0人点赞 admin 阅读全文

整理下平时用的到的一些选择的特殊Unicode字符,可以直接复制黏贴使用: 文字符号 含义 ✓ 复选标记 ✔ 沉重的复选标记 ✖ 重乘法 x ✗ 选票 x(交叉) ✘ 重选票 x(粗体叉号) ⍻ 不复选标记 ☐ 投票箱(复选框) ☑ 带支票的投票箱 ☒ 带 x 的投票箱(带十字的正方形) □ 白方块 ■ 黑色方块 ○ 白色圆圈 ● 黑色圆圈 ⊗ 圈出时间

2023-07-22 0条评论 290点热度 0人点赞 admin 阅读全文

我们有时候需要在GET的参数中传递参数,例如是byte[]类型的内容,一般来说是转成Base64的编码格式,但是带来一个问题是:base64编码后,里面可能会出现一些字符是url里面冲突的,例如=+/这些,虽然可以URLEncode进行编码,但这还是会给程序带来一些复杂度或者不确定性。 关于URL编码的详细规范,可以查看RFC 3986, 这里只对我们会涉及的信息做简要说明。 RFC 3986中有如下两个重要规定: Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、- _ . ~4个特殊字符以及所有保留字…

2022-11-23 0条评论 1106点热度 0人点赞 admin 阅读全文

Java里使用普通数据类型进行计算时候,遇到浮点数运算的时候,经常会遇到出现这样的数字: 1.6666666666667 411.49999999999994 Java中的简单浮点数类型float和double不能够进行运算。不光是Java,在其它很多编程语言中也有这样的问题。在大多数情况下,计算的结果是准确的,但是多试几次(可以做一个循环)就可以试出类似上面的错误。现在终于理解为什么要有BCD码了。 这个问题相当严重,如果你有9.999999999999元,你的计算机是不会认为你可以购买10元的商品的。 在有的编…

2022-11-16 0条评论 343点热度 0人点赞 admin 阅读全文

相信很多小伙伴写程序有自己的一套工具类,或者遇到一个功能,会去网上找一些工具类,难免还会引入很多第三方类库,一个是增加了类库之间冲突的风险,另外是增大了整个包的体积。 我们现在很多时候开发框架选择的是SpringBoot,起始SpringBoot自带了很多使用的工具类,下面介绍下: 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 /…

2022-10-12 0条评论 344点热度 0人点赞 admin 阅读全文

分享我自用的校验身份证是否合法的工具函数,另外还可以从身份证中提出相关信息,例如生日、性别、地区、转换身份证位数(15到18位)、还可以检测香港和台湾的身份证号,如下(相关信息写在静态函数注释里了): IdCardUtils.java public class IdCardUtils { /** 中国公民身份证号码最小长度。 */ public static final int CHINA_ID_MIN_LENGTH = 15; /** 中国公民身份证号码最大长度。 */ public static final i…

2022-03-05 0条评论 523点热度 0人点赞 admin 阅读全文

网页显示某些小的图片需要转成base64的格式,例如<img src="data:image/jpg;base64,anc123==" />这样的形式,后台图片的文件或者类型,需要一个转换方法,工具方法如下: 可用户将RenderedImage(或者BufferedImage)以及File(图片文件)转成base64格式的。 /** * 把RenderedImage转成base64格式的形式,用于网页img标签显示图片 * @param img RenderedImage * @param format…

2022-03-01 0条评论 531点热度 0人点赞 admin 阅读全文

分享我使用的用户解密微信支付APIV3的通知notify,根据微信支付官方的介绍:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml是使用的AEAD_AES_256_GCM加密方式,使用key、nonce和associated_data,对数据密文resource.ciphertext进行解密,得到JSON形式的资源对象。不过看了下,当前页面并没有相关的例子,下面贴出我使用的工具算法。 /** * AEAD_AES_256_GCM 解密 …

2022-02-26 0条评论 1046点热度 0人点赞 admin 阅读全文

生成验证码发送的等场景下会用到,生成多少位(由参数传入)随机数字的字符串,代码如下: /** * 生成随机数字字符串 * @param length 生成数字字符串的长度 */ public static String generateRandomDigitalString(int length) { String str = "0123456789"; Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i …

2022-02-22 0条评论 455点热度 0人点赞 admin 阅读全文