Ann*_*nna 2 java parsing charat
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!
}
}
Run Code Online (Sandbox Code Playgroud)
我想根据字符位置解析输入字符串以获取位置整数。
错误信息:
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)
Run Code Online (Sandbox Code Playgroud)
您调用的方法parseInt(String, int)需要一个基数;表示您想要使用的“数字系统”的东西,例如
parseInt("10", 10)
Run Code Online (Sandbox Code Playgroud)
(十进制为 10)!相反,使用
Integer.parseInt(i)
Run Code Online (Sandbox Code Playgroud)
或者
Integer.parseInt(i, 10)
Run Code Online (Sandbox Code Playgroud)
假设您想在十进制系统中工作。为了解释您的错误消息 - 让我们看看您的代码实际上在做什么。本质上,它调用:
Integer.parseInt("123", '1')
Run Code Online (Sandbox Code Playgroud)
这归结为一个电话
Integer.parseInt("123", 49) // '1' --> int --> 49!
Run Code Online (Sandbox Code Playgroud)
我们就这样 - 因为它与您的错误消息很好地吻合;因为 49 不是解析数字的有效基数。
但真正的答案是:不要盲目地使用某些库方法。研究它的文档,以便了解它在做什么;以及您传递给它的参数的实际含义。
因此,请转到这里并阅读parseInt(String, int)的内容!
| 归档时间: |
|
| 查看次数: |
4070 次 |
| 最近记录: |