【问题标题】:Problem with StringBuilder/StringBuffer to append more than 1300 characters in java [duplicate]StringBuilder / StringBuffer在java中追加超过1300个字符的问题[重复]
【发布时间】:2019-11-07 16:12:45
【问题描述】:

以下是问题:

StringBuffer sbf = new StringBuffer();

for(var i=1;i<=1301;i++){     
   sbf.append(i);
}

System.out.println(sbf.toString());

打印空但里面有值

请看下图中的数值

Img: Screenshot in debugmode

如果我们选择 stringbuffer 对象,它显示为空,但值在那里你可以观察

我很奇怪看到这发生了什么 任何人都可以为此提出解决方案

【问题讨论】:

标签: java string stringbuilder


【解决方案1】:

注意当整数 10 相加时,它显示为 1, 0。我的猜测是由于不同类型的处理方式,没有满足您的期望。

如果你想要一个巨大的字符串,并添加字符串对你来说是有意义的:

StringBuffer sbf = new StringBuffer();
sbf.append("10");
sbf.append("11");
System.out.println(sbf.toString());

这将按预期输出:“1011”。

这是 StringBuffer 的常见用法。

当附加一个整数时,会添加一个字符串表示。这就是您的示例中发生的情况。整数 10 转换为字符串“10”,添加追加。

【讨论】:

  • 如果我们追加低于或等于 1300 个字符,输出将与您所说的完全相同。但是超过 1301 个字符输出显示为空且未分配给 String 偶数值。
  • 我得到了解决方案,我们必须在两个元素之间添加 TAB 作为分隔符。注意:不应使用空格键使用 TAB 。它工作正常。真是奇怪的问题:)
猜你喜欢
  • 2016-07-13
  • 2015-12-13
  • 2019-05-21
  • 1970-01-01
  • 2011-04-28
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
相关资源
最近更新 更多