mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
Merge remote-tracking branch 'gitee/v6-dev' into v6-dev
This commit is contained in:
commit
8bdbf9252a
@ -23,13 +23,13 @@ import java.math.BigInteger;
|
|||||||
* 例如十进制数57,在二进制写作111001,在16进制写作39。<br>
|
* 例如十进制数57,在二进制写作111001,在16进制写作39。<br>
|
||||||
* 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的32,而不是十进制的20<br>
|
* 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的32,而不是十进制的20<br>
|
||||||
* <p>
|
* <p>
|
||||||
*
|
* <p>
|
||||||
* 此工具类为16进制组合工具类,除了继承{@link Hex}实现编码解码外,提供其它转换类和识别类工具。
|
* 此工具类为16进制组合工具类,除了继承{@link Hex}实现编码解码外,提供其它转换类和识别类工具。
|
||||||
*
|
*
|
||||||
* @author Looly
|
* @author Looly
|
||||||
* @see Hex
|
* @see Hex
|
||||||
*/
|
*/
|
||||||
public class HexUtil extends Hex{
|
public class HexUtil extends Hex {
|
||||||
// region ----- Color
|
// region ----- Color
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -233,11 +233,29 @@ public class HexUtil extends Hex{
|
|||||||
* @return 格式化后的字符串
|
* @return 格式化后的字符串
|
||||||
*/
|
*/
|
||||||
public static String format(final String hexStr) {
|
public static String format(final String hexStr) {
|
||||||
|
return format(hexStr, StrUtil.EMPTY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化Hex字符串,结果为每2位加一个空格,类似于:
|
||||||
|
* <pre>
|
||||||
|
* e8 8c 67 03 80 cb 22 00 95 26 8f
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param hexStr Hex字符串
|
||||||
|
* @param prefix 自定义前缀,如0x
|
||||||
|
* @return 格式化后的字符串
|
||||||
|
*/
|
||||||
|
public static String format(final String hexStr, String prefix) {
|
||||||
|
if (null == prefix) {
|
||||||
|
prefix = StrUtil.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
final int length = hexStr.length();
|
final int length = hexStr.length();
|
||||||
final StringBuilder builder = StrUtil.builder(length + length / 2);
|
final StringBuilder builder = StrUtil.builder(length + length / 2 + (length / 2 * prefix.length()));
|
||||||
builder.append(hexStr.charAt(0)).append(hexStr.charAt(1));
|
builder.append(prefix).append(hexStr.charAt(0)).append(hexStr.charAt(1));
|
||||||
for (int i = 2; i < length - 1; i += 2) {
|
for (int i = 2; i < length - 1; i += 2) {
|
||||||
builder.append(CharUtil.SPACE).append(hexStr.charAt(i)).append(hexStr.charAt(i + 1));
|
builder.append(CharUtil.SPACE).append(prefix).append(hexStr.charAt(i)).append(hexStr.charAt(i + 1));
|
||||||
}
|
}
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
@ -85,6 +85,13 @@ public class HexUtilTest {
|
|||||||
Assertions.assertEquals("e8 c6 70 38 0c b2 20 09 52 68 f4 02 21 fc 74 8f a6 ac 39 d6 e9 30 e6 3c 30 da 68 ba d9 7f 88 5d", formatHex);
|
Assertions.assertEquals("e8 c6 70 38 0c b2 20 09 52 68 f4 02 21 fc 74 8f a6 ac 39 d6 e9 30 e6 3c 30 da 68 ba d9 7f 88 5d", formatHex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void formatHexTest2(){
|
||||||
|
final String hex = "e8c670380cb220095268f40221fc748fa6";
|
||||||
|
final String formatHex = HexUtil.format(hex, "0x");
|
||||||
|
Assertions.assertEquals("0xe8 0xc6 0x70 0x38 0x0c 0xb2 0x20 0x09 0x52 0x68 0xf4 0x02 0x21 0xfc 0x74 0x8f 0xa6", formatHex);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void decodeHexTest(){
|
public void decodeHexTest(){
|
||||||
final String s = HexUtil.encodeStr("6");
|
final String s = HexUtil.encodeStr("6");
|
||||||
|
@ -81,3 +81,10 @@ url = jdbc:sqlserver://looly.database.chinacloudapi.cn:1433;database=test;encryp
|
|||||||
user = looly@looly
|
user = looly@looly
|
||||||
pass = 123
|
pass = 123
|
||||||
remarks = true
|
remarks = true
|
||||||
|
|
||||||
|
# 测试用dm数据库
|
||||||
|
[dm]
|
||||||
|
url = jdbc:dm://127.0.0.1:30236/schema=dm8_test
|
||||||
|
user = SYSDBA
|
||||||
|
pass = 123456789
|
||||||
|
remarks = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user