Spec-Zone.ru › Kotlin 2

hexToByteArray

kotlin-stdlib/kotlin.text/hexToByteArray

Начиная с Kotlin: 2.2

fun String.hexToByteArray(format: HexFormat = HexFormat.Default): ByteArray

Разбирает массив байтов из этой строки, используя указанный формат.

Строка должна соответствовать структуре, определённой форматом. Обратите внимание, что на разбор массива байтов влияет только свойство HexFormat.bytes экземпляра формата.

Разбор выполняется без учёта регистра как для шестнадцатеричных цифр, так и для элементов (префикса, суффикса, разделителей), определённых в свойстве HexFormat.bytes. Кроме того, любая из последовательностей символов CRLF, LF и CR считается допустимым разделителем строк.

Подробные сведения о доступных параметрах формата и их влиянии на разбор см. в HexFormat.BytesHexFormat.

Возвращает

массив байтов, разобранный из этой строки.

Параметры

format

HexFormat, используемый для разбора; по умолчанию — HexFormat.Default.

Выбрасывает

IllegalArgumentException

если эта строка не соответствует указанному формату.

Примеры

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API