关于将字符串转换为数值的parseXXX方法疑惑(parseInt中带“+”号)

今天看了一下,parseInt和parseDouble,parseFloat等方法,发现Double那种在字符串中开始位置处包含“+”号不会抛出异常,而对于Integer那种反而能抛出异常,这点很奇怪。。。。

我看了parseInt的源代码,我觉得在前面加上控制“+”号的字符串解析应该是没问题的,这点很纳闷,不知道当初Sun的程序员设计考虑了什么因素,导致在Integer中不能用"+"号。

这里面的不知道有什么设计哲学?我觉得是不是因为考虑想审下键入“+”号的时间O(∩_∩)O。

不过从oracle的网站上找到了答案,这个是被报告为bug的(需增强的),jdk的开发人员认为这是合理的需求,将在未来的版本中得到解决。我看了一下,现在jdk 7的文档,里面已经说可以支持“+”号了。

下面两个链接是bug的网址:
http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=e13c96c11b702967268a3d1eb7abd?bug_id=5017980

http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=196597bb37b6a4502302efdf21d?bug_id=6233144

这是jdk 7的Integer的文档地址:
http://download.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String%29



你可能感兴趣的:(jdk,html,oracle,sun)