今天又碰到一个坑,搞得我头都大!就是那个NumberFormatException,说起来真是让人脑壳疼。你们有没有遇到过这种情况?
今天我本来想把一个字符串转成数字,结果就给我报这个错。你们猜怎么着?我一开始还以为是代码写错,翻来覆去查半天,结果发现,是我要转换的那个字符串,里面有几个字母!你说这能转成数字吗?这不是开玩笑嘛
后来我就想,得找个办法治治这个事儿。毕竟老是这样出错也不是个办法,用户体验得多差!我琢磨着,有这么几个办法:
- 第一个,也是最笨的办法,就是用try-catch。我把那个转换的代码,给它放到try里面,然后在catch里面,专门处理这个NumberFormatException。这样一来,就算出错,程序也不会直接崩溃,我还能给用户一个友好的提示,告诉他们“你输入的这个东西,它不是数字呀!”。
- 第二个办法,我可以用那个什么正则表达式。这玩意儿我之前没怎么用过,但是听说挺厉害的。它可以检查一个字符串是不是符合某种格式,我就用它来检查一下,看看我要转换的那个字符串,是不是都是数字组成的。要是里面有字母啥的,我就提前告诉用户,让他们改改。
- 还有一个办法,我可以用一个叫isDigit()的方法。这个方法可以检查一个字符是不是数字,我就一个一个字符地检查过去,要是有哪个字符不是数字,我就知道,也能提前处理。
我还是选用try-catch。因为我觉得这个办法最简单,而且也挺有效的。另外两个办法,虽然也挺但是正则表达式我不太熟,那个isDigit(),又得一个一个字符去检查,有点麻烦。还是try-catch最适合我!
不过这回的教训也让我明白,以后在做这种类型转换的时候,一定要小心再小心,先检查一下字符串的格式,免得又出这种幺蛾子。今天这一天,真是累死我!
对,我还想到一点,如果是在表单里让用户输入数字,那我还得加个校验,省得用户瞎输。这回,我可不能再马虎!得好好琢磨琢磨,怎么把这个用户体验给提升上去。
经过今天这一遭,我对这个NumberFormatException算是有更深的认识。以后再遇到这种问题,我就知道怎么处理。吃一堑长一智嘛这也是好事儿!
好,今天就说到这儿。希望我的这些经验,对你们也能有所帮助。下次再遇到什么坑,咱们再一起想办法解决!
免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。