代码一:
现象:预期输出abc三个字母,每个单独一行,实际上什么都不会输出。
原因:String.split()的参数是一个正则表达式,"."表示在正则表达式中表示任意字符,因此会将"a.b.c"当成五个分隔符,分隔完成后什么都不剩了,所以什么都不会输出。
正确用法:如果是要用正则表达式中的特殊字符作为分隔符,则需要转义,类似于str.split("\\.")
代码二:
现象:预期输出true,实际输出false。
原因:字符串和整型是两种不同的类型,有各自的equals方法,因此不会相等。一般来说没有公共父类的两个对象执行equals操作都会返回false。
正确用法:进行类型转换,例如"9191".equals(catalogID+"")
代码三:
现象:预期输出true,实际输出false。
原因:计算机用二进制表示十进制浮点数时,有可能无法精确。如果直接输出变量a,会是15.809999
正确用法:需要考虑浮点型可能不精确的问题,一般可以使用Math.abs(a-b)<0.000001来判断两个浮点型是否相等。
|
所有评论仅代表网友意见