hex To UByte Array
Начиная с Kotlin: 2.2
inline fun String.hexToUByteArray(format: HexFormat = HexFormat.Default): UByteArray
Разбирает массив байтов из этой строки, используя указанный формат.
Строка должна соответствовать структуре, заданной форматом. Обратите внимание, что на разбор массива байтов влияет только свойство HexFormat.bytes экземпляра формата.
Разбор выполняется без учёта регистра как для шестнадцатеричных цифр, так и для элементов (префикса, суффикса, разделителей), заданных в свойстве HexFormat.bytes. Кроме того, любые из последовательностей символов CRLF, LF и CR считаются допустимыми разделителями строк.
Сведения о доступных параметрах формата и их влиянии на разбор см. в разделе HexFormat.BytesHexFormat.
Возвращает
массив байтов, разобранный из этой строки.
Параметры
HexFormat, используемый для разбора; по умолчанию — HexFormat.Default.
Исключения
если эта строка не соответствует указанному формату.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val expectedData = byteArrayOf(0xDE.toByte(), 0x2D, 0x02, 0xC0.toByte(), 0x5C, 0x0E)
// Using the default format
println("de2d02c05c0e".hexToByteArray().contentEquals(expectedData)) // true
// Parsing is case-insensitive
println("DE2D02C05C0E".hexToByteArray().contentEquals(expectedData)) // true
// Using a custom format
val format = HexFormat {
bytes {
bytesPerLine = 4
byteSeparator = " " // One space
bytePrefix = "0x"
}
}
println("0xDE 0x2D 0x02 0xC0\n0x5C 0x0E".hexToByteArray(format).contentEquals(expectedData)) // true
// Parsing unsigned bytes results in the unsigned versions of the same bytes
val expectedUnsignedData = expectedData.toUByteArray()
println("de2d02c05c0e".hexToUByteArray().contentEquals(expectedUnsignedData)) // true
// Parsing fails if the input string does not conform to the specified format.
// In this case, there is no line separator after the fourth formatted byte.
// "0xDE 0x2D 0x02 0xC0 0x5C 0x0E".hexToByteArray(format) // 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-to-u-byte-array.html