generated from mingliqiye/lib-tem
- 更新多个工具类的最后修改时间和用户信息 - 移除冗余的 main 函数测试代码 - 优化 ByteUtils 中流处理方法的引用- 为 Collection 扩展大量实用函数,包括转换、获取元素和创建集合实例等 - 引入 SuperStream 替代部分自定义流处理逻辑 - 调整 Spring Boot 自动配置包扫描路径- 修复资源读取时的空指针风险,使用 Kotlin 的 elvis 操作符简化代码
314 lines
6.6 KiB
Kotlin
314 lines
6.6 KiB
Kotlin
/*
|
||
* Copyright 2025 mingliqiye
|
||
*
|
||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
* you may not use this file except in compliance with the License.
|
||
* You may obtain a copy of the License at
|
||
*
|
||
* http://www.apache.org/licenses/LICENSE-2.0
|
||
*
|
||
* Unless required by applicable law or agreed to in writing, software
|
||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
* See the License for the specific language governing permissions and
|
||
* limitations under the License.
|
||
*
|
||
* ProjectName mingli-utils
|
||
* ModuleName mingli-utils.main
|
||
* CurrentFile Base256.kt
|
||
* LastUpdate 2025-09-20 14:01:29
|
||
* UpdateUser MingLiPro
|
||
*/
|
||
|
||
package com.mingliqiye.utils.base
|
||
|
||
/**
|
||
* Base256 字符集 256个
|
||
*
|
||
* 256个字符 要字符集的下面复制
|
||
*
|
||
* !#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~§±×÷←↑→↓⇒⇔∀∃∅∆∇∈∉∋∌∏∑−∓∕∗∘∙√∛∜∞∟∠∣∥∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷≈≠≡≤≥≦≧≪≫≺≻⊂⊃⊆⊇⊈⊉⊊⊋⊕⊖⊗⊘⊙⊚⊛⊜⊝⊞⊟⊠⊡⊢⊣⊤⊥⊦⊧⊨⊩⊪⊫⊬⊭⊮⊯⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐░▒▓▔▕▖▗▘▙
|
||
*
|
||
*/
|
||
class Base256 : BaseCodec {
|
||
|
||
companion object {
|
||
val code = arrayOf(
|
||
'!',
|
||
'#',
|
||
'$',
|
||
'%',
|
||
'&',
|
||
'(',
|
||
')',
|
||
'*',
|
||
'+',
|
||
',',
|
||
'-',
|
||
'.',
|
||
'/',
|
||
'0',
|
||
'1',
|
||
'2',
|
||
'3',
|
||
'4',
|
||
'5',
|
||
'6',
|
||
'7',
|
||
'8',
|
||
'9',
|
||
':',
|
||
';',
|
||
'<',
|
||
'=',
|
||
'>',
|
||
'?',
|
||
'@',
|
||
'A',
|
||
'B',
|
||
'C',
|
||
'D',
|
||
'E',
|
||
'F',
|
||
'G',
|
||
'H',
|
||
'I',
|
||
'J',
|
||
'K',
|
||
'L',
|
||
'M',
|
||
'N',
|
||
'O',
|
||
'P',
|
||
'Q',
|
||
'R',
|
||
'S',
|
||
'T',
|
||
'U',
|
||
'V',
|
||
'W',
|
||
'X',
|
||
'Y',
|
||
'Z',
|
||
'[',
|
||
']',
|
||
'^',
|
||
'_',
|
||
'`',
|
||
'a',
|
||
'b',
|
||
'c',
|
||
'd',
|
||
'e',
|
||
'f',
|
||
'g',
|
||
'h',
|
||
'i',
|
||
'j',
|
||
'k',
|
||
'l',
|
||
'm',
|
||
'n',
|
||
'o',
|
||
'p',
|
||
'q',
|
||
'r',
|
||
's',
|
||
't',
|
||
'u',
|
||
'v',
|
||
'w',
|
||
'x',
|
||
'y',
|
||
'z',
|
||
'{',
|
||
'|',
|
||
'}',
|
||
'~',
|
||
'§',
|
||
'±',
|
||
'×',
|
||
'÷',
|
||
'←',
|
||
'↑',
|
||
'→',
|
||
'↓',
|
||
'⇒',
|
||
'⇔',
|
||
'∀',
|
||
'∃',
|
||
'∅',
|
||
'∆',
|
||
'∇',
|
||
'∈',
|
||
'∉',
|
||
'∋',
|
||
'∌',
|
||
'∏',
|
||
'∑',
|
||
'−',
|
||
'∓',
|
||
'∕',
|
||
'∗',
|
||
'∘',
|
||
'∙',
|
||
'√',
|
||
'∛',
|
||
'∜',
|
||
'∞',
|
||
'∟',
|
||
'∠',
|
||
'∣',
|
||
'∥',
|
||
'∧',
|
||
'∨',
|
||
'∩',
|
||
'∪',
|
||
'∫',
|
||
'∬',
|
||
'∭',
|
||
'∮',
|
||
'∯',
|
||
'∰',
|
||
'∱',
|
||
'∲',
|
||
'∳',
|
||
'∴',
|
||
'∵',
|
||
'∶',
|
||
'∷',
|
||
'≈',
|
||
'≠',
|
||
'≡',
|
||
'≤',
|
||
'≥',
|
||
'≦',
|
||
'≧',
|
||
'≪',
|
||
'≫',
|
||
'≺',
|
||
'≻',
|
||
'⊂',
|
||
'⊃',
|
||
'⊆',
|
||
'⊇',
|
||
'⊈',
|
||
'⊉',
|
||
'⊊',
|
||
'⊋',
|
||
'⊕',
|
||
'⊖',
|
||
'⊗',
|
||
'⊘',
|
||
'⊙',
|
||
'⊚',
|
||
'⊛',
|
||
'⊜',
|
||
'⊝',
|
||
'⊞',
|
||
'⊟',
|
||
'⊠',
|
||
'⊡',
|
||
'⊢',
|
||
'⊣',
|
||
'⊤',
|
||
'⊥',
|
||
'⊦',
|
||
'⊧',
|
||
'⊨',
|
||
'⊩',
|
||
'⊪',
|
||
'⊫',
|
||
'⊬',
|
||
'⊭',
|
||
'⊮',
|
||
'⊯',
|
||
'⋀',
|
||
'⋁',
|
||
'⋂',
|
||
'⋃',
|
||
'⋄',
|
||
'⋅',
|
||
'⋆',
|
||
'⋇',
|
||
'⋈',
|
||
'⋉',
|
||
'⋊',
|
||
'⋋',
|
||
'⋌',
|
||
'⋍',
|
||
'⋎',
|
||
'⋏',
|
||
'⋐',
|
||
'⋑',
|
||
'⋒',
|
||
'⋓',
|
||
'⋔',
|
||
'⋕',
|
||
'⋖',
|
||
'⋗',
|
||
'⋘',
|
||
'⋙',
|
||
'⋚',
|
||
'⋛',
|
||
'⋜',
|
||
'⋝',
|
||
'⋞',
|
||
'⋟',
|
||
'⋠',
|
||
'⋡',
|
||
'⋢',
|
||
'⋣',
|
||
'⋤',
|
||
'⋥',
|
||
'⋦',
|
||
'⋧',
|
||
'⋨',
|
||
'⋩',
|
||
'▁',
|
||
'▂',
|
||
'▃',
|
||
'▄',
|
||
'▅',
|
||
'▆',
|
||
'▇',
|
||
'█',
|
||
'▉',
|
||
'▊',
|
||
'▋',
|
||
'▌',
|
||
'▍',
|
||
'▎',
|
||
'▏',
|
||
'▐',
|
||
'░',
|
||
'▒',
|
||
'▓',
|
||
'▔',
|
||
'▕',
|
||
'▖',
|
||
'▗',
|
||
'▘',
|
||
'▙'
|
||
)
|
||
val codeMap = code.mapIndexed { index, c -> c to index }.toMap()
|
||
}
|
||
|
||
override fun encode(bytes: ByteArray): String {
|
||
val result = CharArray(bytes.size)
|
||
for (i in bytes.indices) {
|
||
val unsignedByte = bytes[i].toInt() and 0xFF
|
||
result[i] = code[unsignedByte]
|
||
}
|
||
return String(result)
|
||
}
|
||
|
||
override fun decode(string: String): ByteArray {
|
||
val result = ByteArray(string.length)
|
||
for (i in string.indices) {
|
||
result[i] = codeMap[string[i]]!!.toByte()
|
||
}
|
||
return result
|
||
}
|
||
}
|