min Length
Начиная с Kotlin: 2.2
val minLength: Int
Задает минимальное количество шестнадцатеричных цифр, используемых для представления числового значения, 1 по умолчанию.
Шестнадцатеричное представление значения вычисляется путем преобразования каждой четырехбитовой группы его двоичного представления в соответствующую шестнадцатеричную цифру, начиная со старших битов.
При форматировании:
Если это значение меньше длины шестнадцатеричного представления: - Если removeLeadingZeros равно
true, начальные нули удаляются до тех пор, пока длина не станет равна minLength. - Если removeLeadingZeros равноfalse, представление остается без изменений, так как начальные нули не удаляются.Если это значение больше длины шестнадцатеричного представления, в начало представления добавляются нули, чтобы его длина достигла указанного значения minLength.
Если это значение равно длине шестнадцатеричного представления, представление остается без изменений.
При разборе это значение игнорируется. Однако входная строка должна содержать хотя бы одну шестнадцатеричную цифру. Если количество шестнадцатеричных цифр превышает емкость разбираемого типа с учетом его разрядности, все лишние старшие цифры должны быть нулями.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
// By default, minLength is 1 and removeLeadingZeros is false.
println(0x3a.toHexString()) // 0000003a
// Specifying a minLength shorter than the hex representation with removeLeadingZeros set to false.
println(0x3a.toHexString(HexFormat { number.minLength = 4 })) // 0000003a
// Specifying a minLength shorter than the hex representation with removeLeadingZeros set to true.
val shorterLengthFormat = HexFormat {
number.removeLeadingZeros = true
number.minLength = 4
}
println(0x3a.toHexString(shorterLengthFormat)) // 003a
println(0xff80ed.toHexString(shorterLengthFormat)) // ff80ed
// Specifying a minLength longer than the hex representation.
// removeLeadingZeros is ignored in this case.
val longerLengthFormat = HexFormat {
number.removeLeadingZeros = true
number.minLength = 12
}
println(0x3a.toHexString(longerLengthFormat)) // 00000000003a
// When parsing, minLength is ignored.
println("3a".hexToInt(longerLengthFormat)) // 58
// The number of hex digits can be greater than what can fit into the type.
println("00000000003a".hexToInt()) // 58
println("0000ffffffff".hexToInt()) // -1
// But excess leading digits must be zeros.
// "000100000000".hexToInt() // will fail with IllegalArgumentException
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.text/-hex-format/-number-hex-format/min-length.html