- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 32 位十六进制值,我希望将其转换为整数。
给定十六进制字符串 C71C5E00
,以下方法都提供以下错误:
java.lang.NumberFormatException: For input string: "C71C5E00"
"C71C5E00".toInt(32)
Integer.valueOf("C71C5E00", 32)
Kotlin docs声明一个 Int 代表一个 32 位有符号整数,所以并不是说这个值太大而不能打包成一个 Int。我试过在字符串前添加 0x
,但没有成功。
编辑:根据this我尝试过的问题:
java.lang.Integer.parseInt("C71C5E00", 32)
不幸的是,我仍然收到同样的错误。
我不常接触 Android 或 Kotlin,请原谅我的无知。
最佳答案
首先,你好像误解了基数,它是valueOf
和parseInt
中的第二个参数,也是扩展函数toInt的唯一参数
。它不代表目标数字类型中的位,它告诉方法如何通过通知它 base 是什么来转换您的字符串。它正在运行。请注意,还有第二个问题,我稍后再谈。
基数是基础数字系统的基数。默认情况下它是 10(0-arg toInt()
方法。toInt()
调用 parseInt
,如下所示:
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
如您所见,它使用 radix = 10。同样,数字类型的位在这里不相关。 Wikipedia很好地涵盖了它,并且 Java 或多或少遵循相同的系统。如您所见,16 对应于十六进制。所以这里使用的适当基数是 16。
但是,正如我提到的,还有第二个问题。它仍然会崩溃,因为无法解析该值。生成的数字是 3340525056
,大于 max int 值 2147483647。
这意味着,您不能使用任何 int 方法;你需要使用 Long
的。
因此,对于您的情况,这很好:
val x = "C71C5E00".toLong(16)
同样,基数是要使用的数字系统,而不是结果数字中的位数。如果是,则需要使用 64 来表示多头。
好处:整数和长整数有预先确定的位数。通过使用 toInt()
,您已经在隐式请求 32 位。对于 Long,您请求的是 64 位。
关于java - hexString.toInt(32) NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52630490/
我正在阅读 Beginning Scala 并尝试使用 REPL 中的示例。 我创建了一个 xml 和一个 toInt 函数,如下所示 val x = {(1 to 3).map(i => {i})}
第一次发帖,请多多关照。我对编码相当陌生,正在努力了解 SWIFT 及其可选项目。非常感谢专业人士的一些建议! 我正在编写一个简单的应用程序,用户在其中输入文本字段,然后在应用程序中进行一些乘法运算,
toInt StringLike 中的方法不带任何参数,只能解析十进制。因此,要解析二进制、十六进制等,我们需要求助于 Java 的 Integer#parseInt(String s, int ra
我正在读我的一本教科书,在解释它引入的代码方面做得很差。这里是示例代码: int choice; QString response; do { cout QUIT) 最佳答案 根据QT Docum
以下错误:无法使用类型为“(@lvalue Int?, @lvalue UInt32)”的参数列表调用“==” @IBOutlet weak var textBox: UITextField! @IB
以下代码中的 println 有效(有或没有 toInt ) println("retweets : ", e.getOrElse("retweets", 0).toInt) top10Tweets(
从另一个页面启动幻灯片拼图项目时出错。 class PuzzlePage extends StatefulWidget { final int rows, columns; Puzzl
我正在尝试使用 String.toInt 将字符串转换为整数。但是,当我想将结果绑定(bind)到变量,然后用它做一些简单的数学运算时,我收到此错误: Function add is expectin
我正在尝试创建一个简单的用户输入,但我在 swift 中找到的唯一函数就是这个 func input() -> String { var keyboard = NSFileHandle.fil
这个问题在这里已经有了答案: .toInt() removed in Swift 2? (5 个答案) 关闭 7 年前。 我刚刚升级到 Swift 2.0,我不确定为什么这行代码不起作用。我知道 t
QString 有 toInt()、toLong() 等几个方法 这些方法接收一个指向 bool 的指针,确定转换是否成功,如下所示: int QString::toInt(bool * ok = 0
我有一个 32 位十六进制值,我希望将其转换为整数。 给定十六进制字符串 C71C5E00,以下方法都提供以下错误: java.lang.NumberFormatException: For inpu
这是关于 RedisClient ,这是一个 C++ 客户端。 我知道您不能在 Redis 中存储整数(在内部转换)。 RedisSyncClient::command 本身不支持整数,因为 Redi
我有一个包含“-3.5”的“QString”,但是如果我尝试使用“toInt”方法将其转换为整数,它会返回 0。为什么? QString strTest = "-3.5"; int i
为什么这段代码会抛出异常? val x = new { def toInt(n: Int) = n*2 } x.toInt(2) scala.tools.nsc.symtab.Types$TypeEr
如果是 long.isValidInt,那么很明显,它求值为相应的 Int 值。 但如果不是呢?是否等同于简单地删除前导位? 最佳答案 Is it equivalent to simply dropp
所以我正在学习 Scala,并且遇到了这个棘手的问题...... 如果我们有一个 String 并想将其转换为 Int,我在网上找到的所有示例都说:“这很简单!只需使用 >String.toInt!”
我正在开发一个使用文本字段并将其转换为整数的应用程序。以前我的代码 textField.text.toInt() 成功了。现在 Swift 将此声明为错误并告诉我这样做 textField.text!
这个问题在这里已经有了答案: .toInt() removed in Swift 2? (5 个答案) 关闭 7 年前。
您好,我正在尝试重载类的赋值运算符以返回类成员(数据)。 class A{ public: int32_t ToInt32() { return this->data; } void Set
我是一名优秀的程序员,十分优秀!