gpt4 book ai didi

string - 在kotlin中将字符串转换为int列表

转载 作者:行者123 更新时间:2023-12-05 03:44:23 27 4
gpt4 key购买 nike

我有一个 string = "1337"并且我想将它转换为 Int 列表,我试图获取字符串中的每个元素并将其转换为 Int 就像这样 string[0].toInt 但我没有得到数字我得到 Ascii 值,我可以用这个 Character.getNumericValue(number) 来做,我如何在不使用内置函数的情况下做到这一点?具有良好的复杂性?

最佳答案

“不使用内置函数”是什么意思?

string[0].toInt 为您提供字符的 ASCII 值,因为 String 上的 fun get(index: Int) 返回类型为 Char,而 Char 的行为更接近于 Number 而不是 String"0".toInt() == 0 将产生 true,但 '0'.toInt() == 0 将产生 false。区别在于第一个是字符串,第二个是字符。

一条线

string.split("").filterNot { it.isBlank() }.map { it.toInt() }

说明:split("") 将获取字符串并为您提供每个字符的列表作为字符串,但是,它会在开头为您提供一个空字符串,这就是为什么我们有 filterNot { it.isBlank() },然后我们可以使用 map 将列表中的每个字符串转换为 Int

如果你想要一些不使用函数转换的功能较少但命令性更强的东西

val ints = mutableListOf<Int>()       //make a list to store the values in
for (c: Char in "1234") { //go through all of the characters in the string
val numericValue = c - '0' //subtract the character '0' from the character we are looking at
ints.add(numericValue) //add the Int to the list
}

c - '0' 起作用的原因是因为数字的 ASCII 值都是从 0 开始的数字顺序,当我们从一个字符中减去另一个字符时,我们得到它们的 ASCII 值。

如果你给它一个不只有数字的字符串,这会给你一些奇怪的结果,但它不会抛出任何异常。

关于string - 在kotlin中将字符串转换为int列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66466083/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com