generated from mingliqiye/lib-tem
Compare commits
No commits in common. "23548c0c3dd99d50e41b236334cd033e60acc384" and "58806e85f11617d475a450e20fc22cdb3375f34e" have entirely different histories.
23548c0c3d
...
58806e85f1
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile Main.kt
|
* CurrentFile Main.kt
|
||||||
* LastUpdate 2025-09-18 14:39:24
|
* LastUpdate 2025-09-17 19:07:01
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
@file:JvmName("Main")
|
@file:JvmName("Main")
|
||||||
@ -24,10 +24,8 @@
|
|||||||
package com.mingliqiye.utils
|
package com.mingliqiye.utils
|
||||||
|
|
||||||
import com.mingliqiye.utils.springboot.autoconfigure.AutoConfiguration
|
import com.mingliqiye.utils.springboot.autoconfigure.AutoConfiguration
|
||||||
import com.mingliqiye.utils.uuid.UUID
|
|
||||||
|
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
AutoConfiguration.printBanner()
|
AutoConfiguration.printBanner()
|
||||||
println(UUID.getV7().getBase256ShortString())
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,317 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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-18 14:36:40
|
|
||||||
* 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun main() {
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -16,12 +16,14 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile Base91.kt
|
* CurrentFile Base91.kt
|
||||||
* LastUpdate 2025-09-18 14:42:59
|
* LastUpdate 2025-09-17 10:57:36
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.mingliqiye.utils.base
|
package com.mingliqiye.utils.base
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base91 编解码工具类,用于将字节数组编码为 Base91 字符串,或将 Base91 字符串解码为原始字节数组。
|
* Base91 编解码工具类,用于将字节数组编码为 Base91 字符串,或将 Base91 字符串解码为原始字节数组。
|
||||||
*
|
*
|
||||||
@ -47,264 +49,16 @@ class Base91 : BaseCodec {
|
|||||||
* Base91 解码表,大小为 256,用于快速查找字符对应的数值。
|
* Base91 解码表,大小为 256,用于快速查找字符对应的数值。
|
||||||
* 初始化时将所有元素设为 -1,表示无效字符;然后根据 ENCODING_TABLE 填充有效字符的索引。
|
* 初始化时将所有元素设为 -1,表示无效字符;然后根据 ENCODING_TABLE 填充有效字符的索引。
|
||||||
*/
|
*/
|
||||||
val DECODING_TABLE: Array<Int> = arrayOf(
|
val DECODING_TABLE: IntArray = IntArray(256)
|
||||||
-1,
|
|
||||||
-1,
|
init {
|
||||||
-1,
|
// 初始化解码表,默认值为 -1 表示该字符不在编码表中
|
||||||
-1,
|
Arrays.fill(DECODING_TABLE, -1);
|
||||||
-1,
|
// 构建解码映射表
|
||||||
-1,
|
for (i in 0..<ENCODING_TABLE.size) {
|
||||||
-1,
|
DECODING_TABLE[ENCODING_TABLE[i].code] = i;
|
||||||
-1,
|
}
|
||||||
-1,
|
}
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
62,
|
|
||||||
90,
|
|
||||||
63,
|
|
||||||
64,
|
|
||||||
65,
|
|
||||||
66,
|
|
||||||
-1,
|
|
||||||
67,
|
|
||||||
68,
|
|
||||||
69,
|
|
||||||
70,
|
|
||||||
71,
|
|
||||||
-1,
|
|
||||||
72,
|
|
||||||
73,
|
|
||||||
52,
|
|
||||||
53,
|
|
||||||
54,
|
|
||||||
55,
|
|
||||||
56,
|
|
||||||
57,
|
|
||||||
58,
|
|
||||||
59,
|
|
||||||
60,
|
|
||||||
61,
|
|
||||||
74,
|
|
||||||
75,
|
|
||||||
76,
|
|
||||||
77,
|
|
||||||
78,
|
|
||||||
79,
|
|
||||||
80,
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6,
|
|
||||||
7,
|
|
||||||
8,
|
|
||||||
9,
|
|
||||||
10,
|
|
||||||
11,
|
|
||||||
12,
|
|
||||||
13,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
16,
|
|
||||||
17,
|
|
||||||
18,
|
|
||||||
19,
|
|
||||||
20,
|
|
||||||
21,
|
|
||||||
22,
|
|
||||||
23,
|
|
||||||
24,
|
|
||||||
25,
|
|
||||||
81,
|
|
||||||
-1,
|
|
||||||
82,
|
|
||||||
83,
|
|
||||||
84,
|
|
||||||
85,
|
|
||||||
26,
|
|
||||||
27,
|
|
||||||
28,
|
|
||||||
29,
|
|
||||||
30,
|
|
||||||
31,
|
|
||||||
32,
|
|
||||||
33,
|
|
||||||
34,
|
|
||||||
35,
|
|
||||||
36,
|
|
||||||
37,
|
|
||||||
38,
|
|
||||||
39,
|
|
||||||
40,
|
|
||||||
41,
|
|
||||||
42,
|
|
||||||
43,
|
|
||||||
44,
|
|
||||||
45,
|
|
||||||
46,
|
|
||||||
47,
|
|
||||||
48,
|
|
||||||
49,
|
|
||||||
50,
|
|
||||||
51,
|
|
||||||
86,
|
|
||||||
87,
|
|
||||||
88,
|
|
||||||
89,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1,
|
|
||||||
-1
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -402,10 +156,3 @@ class Base91 : BaseCodec {
|
|||||||
return buffer.copyOf(index)
|
return buffer.copyOf(index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun main() {
|
|
||||||
val base91 = Base91()
|
|
||||||
val bytes = "Hello, World!".toByteArray()
|
|
||||||
val encoded = base91.encode(bytes)
|
|
||||||
println(encoded)
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile BaseCodec.kt
|
* CurrentFile BaseCodec.kt
|
||||||
* LastUpdate 2025-09-18 14:07:35
|
* LastUpdate 2025-09-17 10:35:23
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -150,24 +150,4 @@ interface BaseCodec {
|
|||||||
false
|
false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 将字符串编码为Base64字符串
|
|
||||||
*
|
|
||||||
* @param string 需要编码的字符串
|
|
||||||
* @return 编码后的Base64字符串
|
|
||||||
*/
|
|
||||||
fun encode(string: String): String {
|
|
||||||
return encode(string.toByteArray())
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将Base64字符串解码为字符串
|
|
||||||
*
|
|
||||||
* @param string 需要解码的Base64字符串
|
|
||||||
* @return 解码后的字符串
|
|
||||||
*/
|
|
||||||
fun decodetoString(string: String): String {
|
|
||||||
return decode(string).toString(Charsets.UTF_8)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile BaseUtils.kt
|
* CurrentFile BaseUtils.kt
|
||||||
* LastUpdate 2025-09-18 14:36:40
|
* LastUpdate 2025-09-17 10:54:46
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -51,12 +51,4 @@ val BASE16: BaseCodec by lazy {
|
|||||||
Base16()
|
Base16()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Base256编解码器实例
|
|
||||||
* 使用懒加载方式初始化Base256编解码器对象
|
|
||||||
* 保证线程安全且只在首次访问时创建实例
|
|
||||||
*/
|
|
||||||
val BASE256: BaseCodec by lazy {
|
|
||||||
Base256()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile BCrypt.kt
|
* CurrentFile BCrypt.kt
|
||||||
* LastUpdate 2025-09-18 09:46:16
|
* LastUpdate 2025-09-17 16:20:30
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile Loggers.kt
|
* CurrentFile Loggers.kt
|
||||||
* LastUpdate 2025-09-18 09:30:48
|
* LastUpdate 2025-09-15 22:32:50
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -416,6 +416,6 @@ class MingLiLoggerFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val mingLiLoggerFactory: MingLiLoggerFactory by lazy { MingLiLoggerFactory() }
|
val mingLiLoggerFactory = MingLiLoggerFactory()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile OsPath.kt
|
* CurrentFile OsPath.kt
|
||||||
* LastUpdate 2025-09-18 09:47:43
|
* LastUpdate 2025-09-15 08:59:15
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -26,8 +26,9 @@ package com.mingliqiye.utils.path
|
|||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.nio.file.Path
|
import java.nio.file.*
|
||||||
import java.nio.file.Paths
|
import java.util.*
|
||||||
|
import java.util.function.Consumer
|
||||||
|
|
||||||
class OsPath private constructor(private val path: Path) : Path by path {
|
class OsPath private constructor(private val path: Path) : Path by path {
|
||||||
|
|
||||||
@ -57,4 +58,48 @@ class OsPath private constructor(private val path: Path) : Path by path {
|
|||||||
return OsPath(Paths.get(""))
|
return OsPath(Paths.get(""))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getParent(): Path? {
|
||||||
|
var parent = path.parent
|
||||||
|
if (parent == null) {
|
||||||
|
parent = path.toAbsolutePath().parent
|
||||||
|
}
|
||||||
|
return parent
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toRealPath(vararg options: LinkOption): Path {
|
||||||
|
return OsPath(path.toRealPath(*options))
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun register(watcher: WatchService, vararg events: WatchEvent.Kind<*>): WatchKey {
|
||||||
|
return path.register(watcher, *events)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun register(
|
||||||
|
watcher: WatchService,
|
||||||
|
events: Array<out WatchEvent.Kind<*>>,
|
||||||
|
vararg modifiers: WatchEvent.Modifier
|
||||||
|
): WatchKey {
|
||||||
|
return path.register(watcher, events, *modifiers)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun iterator(): MutableIterator<Path> {
|
||||||
|
return path.iterator()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun compareTo(other: Path): Int {
|
||||||
|
return path.compareTo(other)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return path.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun forEach(action: Consumer<in Path>) {
|
||||||
|
path.forEach(action)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun spliterator(): Spliterator<Path> {
|
||||||
|
return path.spliterator()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile StringUtils.kt
|
* CurrentFile StringUtils.kt
|
||||||
* LastUpdate 2025-09-18 09:26:41
|
* LastUpdate 2025-09-17 21:09:10
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
@file:JvmName("StringUtils")
|
@file:JvmName("StringUtils")
|
||||||
@ -166,51 +166,12 @@ fun String.stringBuilder(): java.lang.StringBuilder {
|
|||||||
return StringBuilder(this)
|
return StringBuilder(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 将字符串按照指定分隔符进行分割
|
|
||||||
* @param str 需要分割的字符串
|
|
||||||
* @param separator 分割符
|
|
||||||
* @return 分割后的字符串列表
|
|
||||||
*/
|
|
||||||
fun split(str: String, separator: String): List<String> {
|
fun split(str: String, separator: String): List<String> {
|
||||||
return str.split(separator)
|
return str.split(separator)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
fun List<String>.join(separator: String): String {
|
||||||
* 将列表中的元素使用指定分隔符连接成字符串
|
return this.joinToString(separator)
|
||||||
* @param separator 连接分隔符
|
|
||||||
* @param getstring 转换函数,将列表元素转换为字符串,默认使用toString()方法
|
|
||||||
* @return 连接后的字符串
|
|
||||||
*/
|
|
||||||
fun <T> List<T>.join(separator: String, getstring: (T) -> String = { it.toString() }): String {
|
|
||||||
// 使用StringBuilder构建结果字符串
|
|
||||||
val sb = StringBuilder()
|
|
||||||
for (i in this.indices) {
|
|
||||||
sb.append(this[i])
|
|
||||||
// 除了最后一个元素外,都在后面添加分隔符
|
|
||||||
if (i != this.size - 1) {
|
|
||||||
sb.append(separator)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sb.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 使用当前字符串作为分隔符,将列表中的元素连接成字符串
|
|
||||||
* @param list 需要连接的元素列表
|
|
||||||
* @param getstring 转换函数,将列表元素转换为字符串,默认使用toString()方法
|
|
||||||
* @return 连接后的字符串
|
|
||||||
*/
|
|
||||||
fun <T> String.join(list: List<T>, getstring: (T) -> String = { it.toString() }): String {
|
|
||||||
// 使用StringBuilder构建结果字符串
|
|
||||||
val sb = StringBuilder()
|
|
||||||
for (i in list.indices) {
|
|
||||||
sb.append(getstring(list[i]))
|
|
||||||
// 除了最后一个元素外,都在后面添加当前字符串作为分隔符
|
|
||||||
if (i != list.size - 1) {
|
|
||||||
sb.append(this)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sb.toString()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,13 +16,12 @@
|
|||||||
* ProjectName mingli-utils
|
* ProjectName mingli-utils
|
||||||
* ModuleName mingli-utils.main
|
* ModuleName mingli-utils.main
|
||||||
* CurrentFile UUID.kt
|
* CurrentFile UUID.kt
|
||||||
* LastUpdate 2025-09-18 14:39:00
|
* LastUpdate 2025-09-17 16:27:32
|
||||||
* UpdateUser MingLiPro
|
* UpdateUser MingLiPro
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.mingliqiye.utils.uuid
|
package com.mingliqiye.utils.uuid
|
||||||
|
|
||||||
import com.mingliqiye.utils.base.BASE256
|
|
||||||
import com.mingliqiye.utils.base.BASE64
|
import com.mingliqiye.utils.base.BASE64
|
||||||
import com.mingliqiye.utils.base.BASE91
|
import com.mingliqiye.utils.base.BASE91
|
||||||
import com.mingliqiye.utils.random.randomByteSecure
|
import com.mingliqiye.utils.random.randomByteSecure
|
||||||
@ -67,11 +66,6 @@ class UUID : Serializable {
|
|||||||
return UUID(BASE64.decode(baseShortString))
|
return UUID(BASE64.decode(baseShortString))
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
fun ofBase256ShortString(baseShortString: String): UUID {
|
|
||||||
return UUID(BASE256.decode(baseShortString))
|
|
||||||
}
|
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun ofBase91ShortString(baseShortString: String): UUID {
|
fun ofBase91ShortString(baseShortString: String): UUID {
|
||||||
return UUID(BASE91.decode(baseShortString))
|
return UUID(BASE91.decode(baseShortString))
|
||||||
@ -662,10 +656,6 @@ class UUID : Serializable {
|
|||||||
return BASE91.encode(data)
|
return BASE91.encode(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBase256ShortString(): String {
|
|
||||||
return BASE256.encode(data)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提取 UUID V1 中的 MAC 地址。
|
* 提取 UUID V1 中的 MAC 地址。
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user