所以,由于缺少像Long这样的方法。valueOf(字符串s)我卡住了。
如何将字符串转换为长在Kotlin?
所以,由于缺少像Long这样的方法。valueOf(字符串s)我卡住了。
如何将字符串转换为长在Kotlin?
当前回答
实际上,有几种方法:
考虑到:
var numberString : String = "numberString"
// number is the Long value of numberString (if any)
var defaultValue : Long = defaultValue
然后我们有:
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString is a valid number ? | true | false |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLong() | number | NumberFormatException |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull() | number | null |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull() ?: defaultValue | number | defaultValue |
+—————————————————————————————————————————————+——————————+———————————————————————+
其他回答
string.toLong()
其中字符串是变量。
实际上,有几种方法:
考虑到:
var numberString : String = "numberString"
// number is the Long value of numberString (if any)
var defaultValue : Long = defaultValue
然后我们有:
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString is a valid number ? | true | false |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLong() | number | NumberFormatException |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull() | number | null |
+—————————————————————————————————————————————+——————————+———————————————————————+
| numberString.toLongOrNull() ?: defaultValue | number | defaultValue |
+—————————————————————————————————————————————+——————————+———————————————————————+
1. 弦请()。
将字符串解析为[Long]数字并返回结果。 如果字符串无效,则@抛出NumberFormatException 数字的表示。
2. 弦toLongOrNull()。
将字符串解析为[Long]数字,并返回结果或null 如果字符串不是数字的有效表示。
3. str.toLong(10)
将字符串解析为[Long]数字并返回结果。 如果字符串无效,则@抛出NumberFormatException 数字的表示。 @抛出IllegalArgumentException [基数]不是字符串到数字转换的有效基数。
public inline fun String.toLong(radix: Int): Long = java.lang.Long.parseLong(this, checkRadix(radix))
4. string.toLongOrNull(10)
将字符串解析为[Long]数字,并返回结果或null 如果字符串不是数字的有效表示。 当[基数]不是一个有效的基数时,@抛出IllegalArgumentException 到数字转换。
public fun String.toLongOrNull(radix: Int): Long? {...}
5. java.lang.Long.valueOf(字符串)
public static Long valueOf(String s) throws NumberFormatException
实际上,90%的情况下你还需要检查long是否有效,所以你需要:
"10".toLongOrNull()
有一个'orNull'等效的每个'toLong'的基本类型,这些允许管理无效的情况与Kotlin?习语。
注:回答中提及喷气机。字符串过时。以下是当前的Kotlin (1.0):
Kotlin中的任何字符串都有一个扩展函数,可以调用toLong()。不需要什么特别的东西,就用它吧。
String的所有扩展函数都有文档。你可以在api参考中找到其他标准库