gpt4 book ai didi

java - 从 String 中的 char 解析 int 时出错

转载 作者:行者123 更新时间:2023-11-29 07:30:22 24 4
gpt4 key购买 nike

import java.util.*;

public class test
{
public static void main(String[] args)
{
int i = 123;

String s = Integer.toString(i);

int Test = Integer.parseInt(s, s.charAt(0)); // ERROR!
}
}

我想根据字符位置解析输入字符串以获得位置整数。

错误信息:

Exception in thread "main" java.lang.NumberFormatException: radix 49 greater than Character.MAX_RADIX
at java.lang.Integer.parseInt(Unknown Source)
at test.main(test.java:11)

最佳答案

您正在调用的方法 parseInt(String, int) 需要一个 radix;一些表示你想要工作的“数字系统”的东西,比如

parseInt("10", 10) 

(十进制为 10)!相反,使用

Integer.parseInt(i)

Integer.parseInt(i, 10)

假设您想在十进制系统中工作。并解释您的错误消息 - 让我们看看您的代码实际在做什么。本质上,它调用:

Integer.parseInt("123", '1') 

这归结为一个电话

Integer.parseInt("123", 49) // '1' --> int --> 49! 

我们开始了 - 因为它与您的错误消息很好地对齐;因为 49 不是解析数字的有效基数

但这里的真正答案是:不要盲目地使用某些库方法。研究它的文档,以便您了解它在做什么;以及您传递给它的参数实际上是什么意思

于是,翻到这里读什么parseInt(String, int)是关于!

关于java - 从 String 中的 char 解析 int 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43678473/

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