Spec-Zone.ru › Kotlin 2

HexFormat

kotlin-stdlib/kotlin.text/HexFormat

Добавлено в Kotlin: 2.2

class HexFormat

Представляет параметры шестнадцатеричного формата для форматирования и разбора массивов байтов и целочисленных значений со знаком и без знака.

Экземпляр этого класса передаётся функциям форматирования и разбора и задаёт способ их выполнения. Параметры свойства bytes применяются только при форматировании и разборе массивов байтов, а свойства number — при форматировании и разборе числовых значений. Параметр upperCase влияет на оба случая.

Этот класс неизменяем и не может быть создан или настроен напрямую. Чтобы создать новый формат, используйте функцию построителя HexFormat { } и настройте параметры в фигурных скобках. Например, используйте val format = HexFormat { upperCase = true }, чтобы включить форматирование в верхнем регистре.

В классе есть два предопределённых экземпляра, предоставляемых его companion-объектом: Default и UpperCase. Для экземпляра Default параметр upperCase имеет значение false, а параметры свойств bytes и number установлены в значения по умолчанию, указанные соответственно в BytesHexFormat и NumberHexFormat. Для экземпляра UpperCase параметр upperCase имеет значение true, а параметры свойств bytes и number установлены в значения по умолчанию.

См. также

ByteArray.toHexString
String.hexToByteArray
Int.toHexString
String.hexToInt

Примеры

import kotlin.test.*

fun main() { 
   //sampleStart 
   // Specifying format options for numeric values.
println(58.toHexString(HexFormat { number.removeLeadingZeros = true })) // 3a
println("0x3a".hexToInt(HexFormat { number.prefix = "0x" })) // 58

// Specifying format options for byte arrays.
val macAddressFormat = HexFormat {
    upperCase = true
    bytes {
        bytesPerGroup = 2
        groupSeparator = "."
    }
}
val macAddressBytes = byteArrayOf(0x00, 0x1b, 0x63, 0x84.toByte(), 0x45, 0xe6.toByte())
println(macAddressBytes.toHexString(macAddressFormat)) // 001B.6384.45E6
println("\"001B.6384.45E6\".hexToByteArray(macAddressFormat).contentEquals(macAddressBytes) is ${"001B.6384.45E6".hexToByteArray(macAddressFormat).contentEquals(macAddressBytes)}") // true

// Creating a format that defines options for both byte arrays and numeric values.
val customHexFormat = HexFormat {
    upperCase = true
    number {
        removeLeadingZeros = true
        prefix = "0x"
    }
    bytes {
        bytesPerGroup = 2
        groupSeparator = "."
    }
}
// Formatting numeric values utilizes the `upperCase` and `number` options.
println(58.toHexString(customHexFormat)) // 0x3A
// Formatting byte arrays utilizes the `upperCase` and `bytes` options.
println(macAddressBytes.toHexString(customHexFormat)) // 001B.6384.45E6 
   //sampleEnd
}

Типы

Builder

Добавлено в Kotlin: 2.2

class Builder

Предоставляет API для создания HexFormat.

BytesHexFormat

Добавлено в Kotlin: 2.2

class BytesHexFormat

Представляет параметры шестнадцатеричного формата для форматирования и разбора массивов байтов.

Companion

Добавлено в Kotlin: 2.2

object Companion
NumberHexFormat

Добавлено в Kotlin: 2.2

class NumberHexFormat

Представляет параметры шестнадцатеричного формата для форматирования и разбора числовых значений.

Свойства

bytes

Добавлено в Kotlin: 2.2

val bytes: HexFormat.BytesHexFormat

Задаёт шестнадцатеричный формат, используемый для форматирования и разбора массивов байтов.

number

Добавлено в Kotlin: 2.2

val number: HexFormat.NumberHexFormat

Задаёт шестнадцатеричный формат, используемый для форматирования и разбора числовых значений.

upperCase

Добавлено в Kotlin: 2.2

val upperCase: Boolean

Задаёт, следует ли использовать для форматирования шестнадцатеричные цифры в верхнем регистре; по умолчанию false.

Функции

toString

Добавлено в Kotlin: 2.2

open override fun toString(): String

Возвращает строковое представление объекта.

© 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/

Spec-Zone.ru

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