【Java】Pat乙级1024—测试点2、3及部分坑点

本文介绍了Java算法题目中关于测试点2、3的解析,指出输出结果需要处理多余的"."。同时,文章强调了在处理字符串拼接时避免使用String类型,推荐使用StringBuilder以减少内存消耗。还列举了其他坑点,如处理小数位数大于指数位数、指数位数为0以及负数的情况,并提供了相应解决方案。
摘要由CSDN通过智能技术生成

题目就不写上来了,大家都有。

一、测试点2、3

首先测试点2、3,在我代码测试中应该是这样的,如果输入 +1.0E+1,输出则是 10. ,注意:最后面还多了一个小数点 " . " ,这就是导致测试点2、3过不去的原因,需要在最后判断一下。

去掉之后我就满分了

二、其他坑点

这道题其实还有其他的坑,下面是我遇到的,大家可以参考一下

1.别用String类型进行频繁的字符串拼接,这将导致内存超限,使用StringBuilder类

原因是:比如说下面代码片段

String str = "a";
str += "b";
System.out.println(str);

        在方法区字符串常量池中,其实就生成了三个字符串,分别是"a","b","ab",就这意味着如果你拼接的字符串在字符串常量池中不存在,则会现在常量池中创建出来,而且拼接形成的新字符串也会在常量池中创建。这样如果进行频繁的字符串拼接,比如说拼接1000次相同的字符,则在字符串常量池中至少创建了1002个字符串,这将会极大的消耗内存。

        而StringBuilder拼接则是在原字符串后追加,是不会形成新字符串的,它还有一个好兄弟叫StringBuffer,这个是线程安全,但是因为我们算法题都是在单线程中操作,不存在线程安全问题,因此一

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值