Spec-Zone.ru › Kotlin 2

hexToLong

kotlin-stdlib/kotlin.text/hexToLong

Начиная с Kotlin: 2.2

fun String.hexToLong(format: HexFormat = HexFormat.Default): Long

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

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

Входная строка должна начинаться с префикса и заканчиваться суффиксом, заданными в свойстве HexFormat.number. Между ними также должна содержаться хотя бы одна шестнадцатеричная цифра. Если количество шестнадцатеричных цифр превышает 16, все лишние начальные цифры должны быть нулями. Это гарантирует, что значение, представленное шестнадцатеричными цифрами, помещается в 64-битное Long. Разбор выполняется без учёта регистра, в том числе для шестнадцатеричных цифр, префикса и суффикса.

Сведения о доступных параметрах формата и их влиянии на разбор см. в документации HexFormat.NumberHexFormat.

Возвращает

значение Long, разобранное из этой строки.

Параметры

format

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

Выбрасывает

IllegalArgumentException

если эта строка не соответствует указанному формату или если шестнадцатеричные цифры представляют значение, которое не помещается в Long.

Примеры

import kotlin.test.*

fun main() { 
   //sampleStart 
   // Using the default format
println("3a".hexToLong()) // 58

// Parsing is case-insensitive
println("3A".hexToLong()) // 58

// Up to 16 hexadecimal digits can fit into a Long
println("ffffffffffffffff".hexToLong()) // -1

// Excess leading hexadecimal digits must be zeros
println("00ffffffffffffffff".hexToLong()) // -1
// "010000000000000000".hexToLong() // will fail with IllegalArgumentException

// Parsing an ULong results in the unsigned version of the same value
// In this case, (-1L).toULong() = ULong.MAX_VALUE
println("ffffffffffffffff".hexToULong()) // 18446744073709551615

// Using a custom format
val format = HexFormat { number.prefix = "0x" }
println("0x3A".hexToLong(format)) // 58

// Parsing fails if the input string does not conform to the specified format.
// In this case, the prefix is not present.
// "3A".hexToLong(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-long.html

Spec-Zone.ru

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