Builder

Provides an API for building a HexFormat.

This class is a builder for HexFormat, and serves as the receiver type of the lambda expression used in the HexFormat { } builder function to create a new format. Each option in this class corresponds to an option in HexFormat and defines it in the resulting format. For example, use val format = HexFormat { bytes.byteSeparator = ":" } to set BytesHexFormat.byteSeparator option of the HexFormat.bytes property.

Refer to HexFormat for details about how the configured format options affect formatting and parsing results.

Since Kotlin

1.9

Samples

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
}

Properties

Link copied to clipboard

Defines HexFormat.bytes of the format being built.

Since Kotlin 1.9
Link copied to clipboard

Defines HexFormat.number of the format being built.

Since Kotlin 1.9
Link copied to clipboard

Defines HexFormat.upperCase of the format being built, false by default.

Since Kotlin 1.9

Functions

Link copied to clipboard
inline fun bytes(builderAction: HexFormat.BytesHexFormat.Builder.() -> Unit)

Provides a scope for configuring the bytes property.

Since Kotlin 1.9
Link copied to clipboard
inline fun number(builderAction: HexFormat.NumberHexFormat.Builder.() -> Unit)

Provides a scope for configuring the number property.

Since Kotlin 1.9