吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1791|回复: 9
收起左侧

[Java 转载] 新人问题:StringBuilder sb = new StringBuilder()添加出现异常什么原因

[复制链接]
Newriver 发表于 2021-11-18 11:44
                                                              //练习需求是将学生信息写入到文本
1.放在for循环里输出正常
for (Student student : students) {
                StringBuilder sb = new StringBuilder();
                sb.append(student.getName()+",").append(student.getChinese()+",").append(student.getMath()+",").append(student.getEnglish()+",").append(student.getSum());
                bwriter.write(sb.toString());
                bwriter.newLine();
                bwriter.flush();
            }
输出到文本:b,44,55,66,165
                  a,11,22,33,66
2.不放在循环里输出异常
  StringBuilder sb = new StringBuilder();
for (Student student : students) {
              
                sb.append(student.getName()+",").append(student.getChinese()+",").append(student.getMath()+",").append(student.getEnglish()+",").append(student.getSum());
                bwriter.write(sb.toString());
                bwriter.newLine();
                bwriter.flush();
            }
输出到文本:a,11,22,33,
a,11,22,33,66b,44,55,66,165

为什么要加进循坏里面?还有为什么添加那么多的apprend方法?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

火羽夏风 发表于 2021-11-18 13:24
你放在循环里的时候,StringBuilder 对象每次在输出完一个学生的成绩信息后,你new了StringBuilder 对象,会被初始化,所以你能正常输出每个学生的成绩;但你异常的那段代码,你输出完一个学生成绩后,StringBuilder 对象还保留了上一个学生的成绩,所以输出来的值包含了多个学生。解决办法是每次在往StringBuilder 对象里添加信息前,先初始化一下。
Vvvvvoid 发表于 2021-11-18 12:55
goldli 发表于 2021-11-18 13:01
18537630210 发表于 2021-11-18 14:19
sb.setLength(0).经常用到。放在for循环里跟用string没大的区别了。
he183137 发表于 2021-11-19 09:41
方法1 :放循环里,每次循环的时候会new一个新的stringbuffer 对象,在新的对象里append,然后输出文本
方法2: 放到循坏外,只new 了一次stringbuffer,循环里对一个stringbuffer进行操作
hanbo250 发表于 2021-11-19 10:51
append()方法就是在StringBuild对象后面添加字符串,其连接作用,这是一种方法,不能省。如果要多次使用,可以创造一个方法类,再次使用时调用就行。当然,像你这种使用for循环也可以只写一次就能重复使用。
HiAmo 发表于 2021-11-24 10:37
sb.delete(0, sb.length());
也可以重置
黑猫的猫 发表于 2021-11-27 22:00
将builder拿出来后把writer也拿出来,不然的话会第一次循环会输出1第二次输出的会将第一次的1拼接为1+1+2
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表