Как конвертировать String в Long в Котлине?
Котлин вызов начался.
все задачи состоят в том, чтобы написать консольную программу, которая считывает параметры с консоли и записывает вывод на консоль, чтобы сделать автоматическую проверку возможной.
основной метод в Котлине выглядит как
fun main(args: Array<String>): Unit {
//do something
}
большинство входных параметров в задачах должны интерпретироваться как числа.
Итак, из-за отсутствия таких методов, как Long.valueOf(String s)
Я просто застрял. Я не могу преобразовать строку в длинную, и мне стыдно.
8 ответов:
1.
string.toLong()
анализирует строку как [длинное] число и возвращает результат.
@бросает NumberFormatException, если строка не является допустимым представление числа.
2.
string.toLongOrNull()
анализирует строку как [длинное] число и возвращает результат или
null
если строка не является допустимым представлением число.3.
str.toLong(10)
анализирует строку как [длинное] число и возвращает результат.
@бросает NumberFormatException, если строка не является допустимым представление числа.
@бросает IllegalArgumentException когда [радикс] не является допустимым основанием для преобразования строки в число.
public inline fun String.toLong(radix: Int): Long = java.lang.Long.parseLong(this, checkRadix(radix))
4.
string.toLongOrNull(10)
анализирует строку как [длинное] число и возвращает результат или
null
если строка не является допустимым представлением числа.@бросает IllegalArgumentException, когда [radix] не является допустимым основанием для строки для преобразования чисел.
public fun String.toLongOrNull(radix: Int): Long? {...}
5.
java.lang.Long.valueOf(string)
public static Long valueOf(String s) throws NumberFormatException
Примечание: ответы с упоминанием
jet.String
устарели. Вот текущий Котлин (1.0):любой
String
в Kotlin уже есть функция расширения, которую вы можете вызватьtoLong()
. Ничего особенного не нужно, просто используйте его.все функции расширения для
String
документируются. Вы можете найти другие для стандартного lib в ссылка на api
Это интересно. Код такой:
val num = java.lang.Long.valueOf("2"); println(num); println(num is kotlin.Long);
делает этот вывод:
2 true
Я думаю, Котлин делает преобразование из
java.lang.Long
и долго примитивных доkotlin.Long
автоматически в этом случае. Итак, это решение, но я был бы рад увидеть инструмент без java.использование пакета Лэнг.
на самом деле, 90% времени вам также нужно проверить "длинный" действителен, поэтому вам нужно:
"10".toLongOrNull()
существует эквивалент "orNull" для каждого "toLong" основных типов, и они позволяют управлять недопустимыми случаями с сохранением Котлина? идиома.
существует 5 различных способов преобразования String в Long на языке программирования Kotlin, которые представлены ниже:
- строку.предоставлением()
- строку.toLongOrNull ()
- строку.предоставлением(10)
- строку.toLongOrNull(10)
- java.ленг.Длинный.valueOf (string)
см. docs для объяснения в деталях.