java - StringBuilder/StringBuffer 在 java 中追加超过 1300 个字符的问题
问题描述
下面是问题:
StringBuffer sbf = new StringBuffer();
for(var i=1;i<=1301;i++){
sbf.append(i);
}
System.out.println(sbf.toString());
打印空但里面有值
请查看下图中的值
如果我们选择 stringbuffer 对象,它显示为空但值在那里你可以观察到
我很奇怪看到这发生了什么 有人可以为此提出解决方案吗
解决方案
注意当整数 10 相加时,它显示为 1, 0。我的猜测是由于不同类型的处理方式,您的期望没有得到满足。
如果您想要一个巨大的字符串,并添加字符串,这对您来说很有意义:
StringBuffer sbf = new StringBuffer();
sbf.append("10");
sbf.append("11");
System.out.println(sbf.toString());
这将按预期输出:“1011”。
这是 StringBuffer 的常见用法。
当附加一个整数时,会添加一个字符串表示。这就是您的示例中发生的情况。整数 10 转换为字符串“10”,添加附加。
推荐阅读
- c# - 将循环打印到 WINdows 表单中的单个标签控件
- angular - 类型“对象”不可分配给类型“T”
- javascript - 传递全局变量以导入 JS 模块
- c# - TcpClient BeginConnect 返回 ObjectDisposed
- google-apps-script - 使用 APIv4(Google Apps 脚本)过滤 Google 表格
- excel - 时间的条件格式
- facebook - 查找喜欢我的页面的用户的用户 ID
- java - 数据被错误地从火花流写入或读取到 HDFS
- html - IE 文档模式和 iframe
- servicestack - 反序列化时数据成员名称不起作用