类型转换工具 - ConvertUtil

由来

类型转换是日常开发中最常见的操作之一。ConvertUtil 提供 bytes↔int、通用类型转换、安全字符串转换等常用方法。

方法

字节转换

from hutool import ConvertUtil

# bytes → int(大端序)
ConvertUtil.bytes_to_int(b"\x00\x00\x01\x00")  # 256
ConvertUtil.bytes_to_int(b"\xff")  # 255

# int → bytes(大端序)
ConvertUtil.int_to_bytes(256, 2)  # b'\x01\x00'
ConvertUtil.int_to_bytes(1, 4)  # b'\x00\x00\x00\x01'
ConvertUtil.int_to_bytes(0, 1)  # b'\x00'

安全字符串转换

# bytes/bytearray 自动解码
ConvertUtil.to_str(b"hello")  # 'hello'

# 其他类型使用 str()
ConvertUtil.to_str(123)  # '123'
ConvertUtil.to_str(None)  # ''

# 自定义编码
ConvertUtil.to_str(b"\xc4\xe3\xba\xc3", "gb2312")  # '你好'

通用类型转换

ConvertUtil.convert("123", int)  # 123
ConvertUtil.convert(3.14, str)  # '3.14'
ConvertUtil.convert("true", bool)  # True
ConvertUtil.convert(None, int)  # 0
ConvertUtil.convert(None, str)  # ''

中文数字转换

# 数字转中文
ConvertUtil.number_to_chinese(123)  # "一百二十三"
ConvertUtil.number_to_chinese(10001)  # "一万零一"

# 数字转中文大写
ConvertUtil.digit_to_chinese(123)  # "壹佰贰拾叁"
ConvertUtil.digit_to_chinese(10000)  # "壹万"

# 中文转数字
ConvertUtil.chinese_to_number("一百二十三")  # 123
ConvertUtil.chinese_to_number("一万零一")  # 10001

英文数字

# 数字转英文
ConvertUtil.number_to_word(123)  # "one hundred and twenty-three"
ConvertUtil.number_to_word(0)  # "zero"

中文金额

# 中文金额转数字
ConvertUtil.chinese_money_to_number("壹佰贰拾叁元整")  # 123.0
ConvertUtil.chinese_money_to_number("叁万零伍拾")  # 30050.0

数字简写

# 数字简写(千/万/亿)
ConvertUtil.number_to_simple(1234)  # "1.2K"
ConvertUtil.number_to_simple(1234567)  # "1.2M"
ConvertUtil.number_to_simple(12345678)  # "1234.6万"

全角/半角转换

# 全角转半角
ConvertUtil.to_dbc("Hello")  # "Hello"
ConvertUtil.to_dbc("123")  # "123"

# 半角转全角
ConvertUtil.to_sbc("Hello")  # "Hello"
ConvertUtil.to_sbc("123")  # "123"

表格格式化

# 字典转表格字符串
data = [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]
ConvertUtil.dict_to_tabular(data)
# name    age
# Alice   30
# Bob     25

# 列表转表格字符串
ConvertUtil.list_to_tabular([[1, 2], [3, 4]], headers=["A", "B"])
# A  B
# 1  2
# 3  4

备注

更多方法请参阅 API 参考 文档。