hex To Byte Array
Начиная с Kotlin: 2.2
fun String.hexToByteArray(format: HexFormat = HexFormat.Default): ByteArray
Разбирает массив байтов из этой строки, используя указанный формат.
Строка должна соответствовать структуре, определённой форматом. Обратите внимание, что на разбор массива байтов влияет только свойство 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-byte-array.html