工作需要将固定格式的字符串转换成整数形式。
所得字符串格式为类似于 "00000010" 的 10 位格式前面N(N <= 10)位为 0
要将之转换成10进制整数
如上例的 "00000010" 转换之后要得到十进制整数 10
本人是这样的转换Integer num1 = Integer.parseInt("00000010");很遗憾得到了一个NullPointException
不太死心
写了一个单独的单文档 java 程序
将之放在 main 方法中执行却能成功得到所需要的十进制数 10
有没有哪位帮忙解决下这个问题
谢谢
所得字符串格式为类似于 "00000010" 的 10 位格式前面N(N <= 10)位为 0
要将之转换成10进制整数
如上例的 "00000010" 转换之后要得到十进制整数 10
本人是这样的转换Integer num1 = Integer.parseInt("00000010");很遗憾得到了一个NullPointException
不太死心
写了一个单独的单文档 java 程序
将之放在 main 方法中执行却能成功得到所需要的十进制数 10
有没有哪位帮忙解决下这个问题
谢谢
不是这一句抛出的吧,再检查检查.
这一点我在调试的时候已经证明了
另外刚刚我又把 "00000010" 换成 "10" 试了一下
也就是写成Integer num1 = Integer.parseInt("10");空指针异常就不出来了
所以应该可以肯定异常的罪魁祸首应该就是Integer num1 = Integer.parseInt("00000010");无异议的吧
因为要生成一个流水号
最佳办法我知道是交给Oracle的Procedure去处理
但是为了这么一个流水号去写一个Procedure以及其附属产品
我感觉没必要
就直接在 java 代码里头去处理它
可以肯定地说
要转换的字符串没抓错
是肯定不会抛出NullPointerException的。肯定是另外的语句,
package com.lv9.test;public class Test {
public static void main(String[] args) {
System.out.println(Integer.parseInt("00000010"));
}
}
输出结果 10
//字符串转整数,不会有问题
System.out.println(Integer.parseInt("00000010"));
//整数转8位长字符串,前导填充0
String formatted = String.format("%08d", 10);
System.out.println(formatted);