Kotlin挑战赛已经开始 .
所有任务都是编写一个控制台程序,从控制台读取参数并将输出写入控制台以进行自动检查 .
Kotlin的主要方法看起来像
fun main(args: Array<String>): Unit { //do something }
任务中的大多数输入参数都应解释为数字 . 所以,由于缺乏像_156153这样的方法,我只是卡住了 . 我无法将String转换为Long,我感到惭愧 .
注意:提及 jet.String 的答案已过时 . 这是目前的Kotlin(1.0):
jet.String
Kotlin中的任何 String 都有一个扩展功能,您可以调用 toLong() . 没有什么特别需要,只需使用它 .
String
toLong()
所有extension functions for String都有记录 . 你可以在api reference找到标准库的其他人
1. string.toLong()
将字符串解析为[Long]数字并返回结果 . @throws NumberFormatException如果字符串不是数字的有效表示 .
2. string.toLongOrNull()
将字符串解析为[Long]数字并返回结果,如果字符串不是数字的有效表示,则返回null .
3. str.toLong(10)
将字符串解析为[Long]数字并返回结果 . @throws NumberFormatException如果字符串不是数字的有效表示 . @throws IllegalArgumentException [radix]不是字符串到数字转换的有效基数 .
public inline fun String.toLong(radix: Int): Long = java.lang.Long.parseLong(this, checkRadix(radix))
4. string.toLongOrNull(10)
将字符串解析为[Long]数字并返回结果,如果字符串不是数字的有效表示,则返回null . @throws IllegalArgumentException [radix]不是字符串到数字转换的有效基数 .
public fun String.toLongOrNull(radix: Int): Long? {...}
5. java.lang.Long.valueOf(string)
public static Long valueOf(String s) throws NumberFormatException
这真有趣 . 像这样的代码:
val num = java.lang.Long.valueOf("2"); println(num); println(num is kotlin.Long);
使这个输出:
2 true
我想,在这种情况下,Kotlin会自动将 java.lang.Long 和long原语转换为 kotlin.Long . 所以,它是解决方案,但我很乐意看到没有java.lang包使用的工具 .
java.lang.Long
kotlin.Long
String 有一个相应的扩展方法:
"10".toLong()
string.toLong()
其中 string 是你的变量 .
string
扩展方法可用于 String 来将它们解析为其他基本类型 . 以下示例:
"true".toBoolean()
"10.0".toFloat()
"10.0".toDouble()
"10".toByte()
"10".toShort()
"10".toInt()
实际上,90%的时间你需要检查'long'是有效的,所以你需要:
"10".toLongOrNull()
对于基本类型的每个'toLong',都有一个'orNull'等价物,这些允许管理与Kotlin保持一致的无效案例?成语 .
在Kotlin编程语言中有5种不同的方法将String转换为Long,如下所示:
string.toLongOrNull()
string.toLong(10)
string.toLongOrNull(10)
java.lang.Long.valueOf(string)
有关详细说明,请参阅docs .
8 回答
注意:提及
jet.String
的答案已过时 . 这是目前的Kotlin(1.0):Kotlin中的任何
String
都有一个扩展功能,您可以调用toLong()
. 没有什么特别需要,只需使用它 .所有extension functions for String都有记录 . 你可以在api reference找到标准库的其他人
1. string.toLong()
2. string.toLongOrNull()
3. str.toLong(10)
4. string.toLongOrNull(10)
5. java.lang.Long.valueOf(string)
这真有趣 . 像这样的代码:
使这个输出:
我想,在这种情况下,Kotlin会自动将
java.lang.Long
和long原语转换为kotlin.Long
. 所以,它是解决方案,但我很乐意看到没有java.lang包使用的工具 .String
有一个相应的扩展方法:string.toLong()
其中
string
是你的变量 .扩展方法可用于
String
来将它们解析为其他基本类型 . 以下示例:"true".toBoolean()
"10.0".toFloat()
"10.0".toDouble()
"10".toByte()
"10".toShort()
"10".toInt()
"10".toLong()
实际上,90%的时间你需要检查'long'是有效的,所以你需要:
对于基本类型的每个'toLong',都有一个'orNull'等价物,这些允许管理与Kotlin保持一致的无效案例?成语 .
在Kotlin编程语言中有5种不同的方法将String转换为Long,如下所示:
string.toLong()
string.toLongOrNull()
string.toLong(10)
string.toLongOrNull(10)
java.lang.Long.valueOf(string)
有关详细说明,请参阅docs .