diff --git a/src/main/java/com/muyu/common/core/text/Convert.java b/src/main/java/com/muyu/common/core/text/Convert.java index fb57cb9..05460f2 100644 --- a/src/main/java/com/muyu/common/core/text/Convert.java +++ b/src/main/java/com/muyu/common/core/text/Convert.java @@ -1,6 +1,7 @@ package com.muyu.common.core.text; import com.muyu.common.core.utils.StringUtils; +import lombok.extern.log4j.Log4j2; import java.math.BigDecimal; import java.math.BigInteger; @@ -15,6 +16,7 @@ import java.util.Set; * * @author muyu */ +@Log4j2 public class Convert { /** * 转换为字符串
@@ -23,10 +25,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static String toStr (Object value, String defaultValue) { + public static String toStr(Object value, String defaultValue) { if (null == value) { return defaultValue; } @@ -42,10 +43,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static String toStr (Object value) { + public static String toStr(Object value) { return toStr(value, null); } @@ -56,10 +56,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Character toChar (Object value, Character defaultValue) { + public static Character toChar(Object value, Character defaultValue) { if (null == value) { return defaultValue; } @@ -77,10 +76,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Character toChar (Object value) { + public static Character toChar(Object value) { return toChar(value, null); } @@ -91,10 +89,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Byte toByte (Object value, Byte defaultValue) { + public static Byte toByte(Object value, Byte defaultValue) { if (value == null) { return defaultValue; } @@ -121,10 +118,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Byte toByte (Object value) { + public static Byte toByte(Object value) { return toByte(value, null); } @@ -135,10 +131,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Short toShort (Object value, Short defaultValue) { + public static Short toShort(Object value, Short defaultValue) { if (value == null) { return defaultValue; } @@ -165,10 +160,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Short toShort (Object value) { + public static Short toShort(Object value) { return toShort(value, null); } @@ -179,10 +173,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Number toNumber (Object value, Number defaultValue) { + public static Number toNumber(Object value, Number defaultValue) { if (value == null) { return defaultValue; } @@ -206,10 +199,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Number toNumber (Object value) { + public static Number toNumber(Object value) { return toNumber(value, null); } @@ -220,10 +212,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Integer toInt (Object value, Integer defaultValue) { + public static Integer toInt(Object value, Integer defaultValue) { if (value == null) { return defaultValue; } @@ -250,10 +241,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Integer toInt (Object value) { + public static Integer toInt(Object value) { return toInt(value, null); } @@ -261,10 +251,9 @@ public class Convert { * 转换为Integer数组
* * @param str 被转换的值 - * * @return 结果 */ - public static Integer[] toIntArray (String str) { + public static Integer[] toIntArray(String str) { return toIntArray(",", str); } @@ -272,10 +261,9 @@ public class Convert { * 转换为Long数组
* * @param str 被转换的值 - * * @return 结果 */ - public static Long[] toLongArray (String str) { + public static Long[] toLongArray(String str) { return toLongArray(",", str); } @@ -284,16 +272,15 @@ public class Convert { * * @param split 分隔符 * @param str 被转换的值 - * * @return 结果 */ - public static Integer[] toIntArray (String split, String str) { + public static Integer[] toIntArray(String split, String str) { if (StringUtils.isEmpty(str)) { return new Integer[]{}; } String[] arr = str.split(split); final Integer[] ints = new Integer[arr.length]; - for (int i = 0 ; i < arr.length ; i++) { + for (int i = 0; i < arr.length; i++) { final Integer v = toInt(arr[i], 0); ints[i] = v; } @@ -305,16 +292,15 @@ public class Convert { * * @param split 分隔符 * @param str 被转换的值 - * * @return 结果 */ - public static Long[] toLongArray (String split, String str) { + public static Long[] toLongArray(String split, String str) { if (StringUtils.isEmpty(str)) { return new Long[]{}; } String[] arr = str.split(split); final Long[] longs = new Long[arr.length]; - for (int i = 0 ; i < arr.length ; i++) { + for (int i = 0; i < arr.length; i++) { final Long v = toLong(arr[i], null); longs[i] = v; } @@ -325,10 +311,9 @@ public class Convert { * 转换为String数组
* * @param str 被转换的值 - * * @return 结果 */ - public static String[] toStrArray (String str) { + public static String[] toStrArray(String str) { return toStrArray(",", str); } @@ -337,10 +322,9 @@ public class Convert { * * @param split 分隔符 * @param str 被转换的值 - * * @return 结果 */ - public static String[] toStrArray (String split, String str) { + public static String[] toStrArray(String split, String str) { return str.split(split); } @@ -351,10 +335,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Long toLong (Object value, Long defaultValue) { + public static Long toLong(Object value, Long defaultValue) { if (value == null) { return defaultValue; } @@ -382,10 +365,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Long toLong (Object value) { + public static Long toLong(Object value) { return toLong(value, null); } @@ -396,10 +378,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Double toDouble (Object value, Double defaultValue) { + public static Double toDouble(Object value, Double defaultValue) { if (value == null) { return defaultValue; } @@ -427,10 +408,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Double toDouble (Object value) { + public static Double toDouble(Object value) { return toDouble(value, null); } @@ -441,10 +421,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Float toFloat (Object value, Float defaultValue) { + public static Float toFloat(Object value, Float defaultValue) { if (value == null) { return defaultValue; } @@ -471,10 +450,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Float toFloat (Object value) { + public static Float toFloat(Object value) { return toFloat(value, null); } @@ -485,10 +463,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static Boolean toBool (Object value, Boolean defaultValue) { + public static Boolean toBool(Object value, Boolean defaultValue) { if (value == null) { return defaultValue; } @@ -521,10 +498,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static Boolean toBool (Object value) { + public static Boolean toBool(Object value) { return toBool(value, null); } @@ -535,10 +511,9 @@ public class Convert { * @param clazz Enum的Class * @param value 值 * @param defaultValue 默认值 - * * @return Enum */ - public static > E toEnum (Class clazz, Object value, E defaultValue) { + public static > E toEnum(Class clazz, Object value, E defaultValue) { if (value == null) { return defaultValue; } @@ -564,10 +539,9 @@ public class Convert { * * @param clazz Enum的Class * @param value 值 - * * @return Enum */ - public static > E toEnum (Class clazz, Object value) { + public static > E toEnum(Class clazz, Object value) { return toEnum(clazz, value, null); } @@ -578,10 +552,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static BigInteger toBigInteger (Object value, BigInteger defaultValue) { + public static BigInteger toBigInteger(Object value, BigInteger defaultValue) { if (value == null) { return defaultValue; } @@ -608,10 +581,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static BigInteger toBigInteger (Object value) { + public static BigInteger toBigInteger(Object value) { return toBigInteger(value, null); } @@ -622,10 +594,9 @@ public class Convert { * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 - * * @return 结果 */ - public static BigDecimal toBigDecimal (Object value, BigDecimal defaultValue) { + public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) { if (value == null) { return defaultValue; } @@ -658,10 +629,9 @@ public class Convert { * 转换失败不会报错 * * @param value 被转换的值 - * * @return 结果 */ - public static BigDecimal toBigDecimal (Object value) { + public static BigDecimal toBigDecimal(Object value) { return toBigDecimal(value, null); } @@ -670,10 +640,9 @@ public class Convert { * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 * * @param obj 对象 - * * @return 字符串 */ - public static String utf8Str (Object obj) { + public static String utf8Str(Object obj) { return str(obj, CharsetKit.CHARSET_UTF_8); } @@ -683,11 +652,15 @@ public class Convert { * * @param obj 对象 * @param charsetName 字符集 - * * @return 字符串 */ - public static String str (Object obj, String charsetName) { - return str(obj, Charset.forName(charsetName)); + public static String str(Object obj, String charsetName) { + try { + return str(obj, Charset.forName(charsetName)); + } catch (Exception exception) { + log.error("字符转换异常, [{}-{}] -> {}", obj, charsetName, exception.getMessage(), exception); + throw new RuntimeException(exception); + } } /** @@ -696,10 +669,9 @@ public class Convert { * * @param obj 对象 * @param charset 字符集 - * * @return 字符串 */ - public static String str (Object obj, Charset charset) { + public static String str(Object obj, Charset charset) { if (null == obj) { return null; } @@ -713,7 +685,7 @@ public class Convert { Byte[] bytes = (Byte[]) obj; int length = bytes.length; byte[] dest = new byte[length]; - for (int i = 0 ; i < length ; i++) { + for (int i = 0; i < length; i++) { dest[i] = bytes[i]; } return str(dest, charset); @@ -729,10 +701,9 @@ public class Convert { * * @param bytes byte数组 * @param charset 字符集 - * * @return 字符串 */ - public static String str (byte[] bytes, String charset) { + public static String str(byte[] bytes, String charset) { return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset)); } @@ -741,10 +712,9 @@ public class Convert { * * @param data 字符串 * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 - * * @return 解码后的字符串 */ - public static String str (byte[] data, Charset charset) { + public static String str(byte[] data, Charset charset) { if (data == null) { return null; } @@ -760,10 +730,9 @@ public class Convert { * * @param data 数据 * @param charset 字符集,如果为空使用当前系统字符集 - * * @return 字符串 */ - public static String str (ByteBuffer data, String charset) { + public static String str(ByteBuffer data, String charset) { if (data == null) { return null; } @@ -776,10 +745,9 @@ public class Convert { * * @param data 数据 * @param charset 字符集,如果为空使用当前系统字符集 - * * @return 字符串 */ - public static String str (ByteBuffer data, Charset charset) { + public static String str(ByteBuffer data, Charset charset) { if (null == charset) { charset = Charset.defaultCharset(); } @@ -792,10 +760,9 @@ public class Convert { * 半角转全角 * * @param input String. - * * @return 全角字符串. */ - public static String toSBC (String input) { + public static String toSBC(String input) { return toSBC(input, null); } @@ -804,12 +771,11 @@ public class Convert { * * @param input String * @param notConvertSet 不替换的字符集合 - * * @return 全角字符串. */ - public static String toSBC (String input, Set notConvertSet) { + public static String toSBC(String input, Set notConvertSet) { char[] c = input.toCharArray(); - for (int i = 0 ; i < c.length ; i++) { + for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) { // 跳过不替换的字符 continue; @@ -829,10 +795,9 @@ public class Convert { * 全角转半角 * * @param input String. - * * @return 半角字符串 */ - public static String toDBC (String input) { + public static String toDBC(String input) { return toDBC(input, null); } @@ -841,12 +806,11 @@ public class Convert { * * @param text 文本 * @param notConvertSet 不替换的字符集合 - * * @return 替换后的字符 */ - public static String toDBC (String text, Set notConvertSet) { + public static String toDBC(String text, Set notConvertSet) { char[] c = text.toCharArray(); - for (int i = 0 ; i < c.length ; i++) { + for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) { // 跳过不替换的字符 continue; @@ -865,10 +829,9 @@ public class Convert { * 数字金额大写转换 先写个完整的然后将如零拾替换成零 * * @param n 数字 - * * @return 中文大写数字 */ - public static String digitUppercase (double n) { + public static String digitUppercase(double n) { String[] fraction = {"角", "分"}; String[] digit = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; String[][] unit = {{"元", "万", "亿"}, {"", "拾", "佰", "仟"}}; @@ -877,7 +840,7 @@ public class Convert { n = Math.abs(n); String s = ""; - for (int i = 0 ; i < fraction.length ; i++) { + for (int i = 0; i < fraction.length; i++) { // 优化double计算精度丢失问题 BigDecimal nNum = new BigDecimal(n); BigDecimal decimal = new BigDecimal(10); @@ -890,9 +853,9 @@ public class Convert { } int integerPart = (int) Math.floor(n); - for (int i = 0 ; i < unit[0].length && integerPart > 0 ; i++) { + for (int i = 0; i < unit[0].length && integerPart > 0; i++) { String p = ""; - for (int j = 0 ; j < unit[1].length && n > 0 ; j++) { + for (int j = 0; j < unit[1].length && n > 0; j++) { p = digit[integerPart % 10] + unit[1][j] + p; integerPart = integerPart / 10; }