问题标签 [stringbuilder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
15264 浏览

c# - LINQ 从 String[] 追加到 StringBuilder

我有一个字符串数组,我想通过 LINQ 将它添加到字符串生成器中。

我基本上想说的是“对于这个数组中的每个项目,在这个 StringBuilder 中附加一行”。

我可以使用 foreach 循环很容易地做到这一点,但是下面的代码似乎没有做任何事情。我错过了什么?

这在哪里起作用:

0 投票
4 回答
3132 浏览

hibernate - 休眠:打印日志消息时出现 OutOfMemoryError 持久 Blob

我有一个休眠实体:

我的 VM 配置为最大堆大小为 512 MB。当我尝试持久化具有 75 MB 大对象的对象时,我收到 OutOfMemoryError。

堆栈跟踪中的方法名称(StringBuilder、ByteArrayBlobType.toLoggableString、pretty.Printer.toString)表明 hibernate 正在尝试写入包含我的对象的非常大的日志消息。

我对为什么休眠使用这么多内存是正确的吗?解决此问题的最简单方法是什么?

0 投票
4 回答
1349 浏览

java - 附加字符串比通过标准 Java stringbuilder.append 获得更好的性能

作为填充搜索引擎过程的一部分,我还填充了 Berekely-DB 值存储。这个过程每晚重复一次,目前每晚总运行时间的 +/- 60% 是由创建要插入值存储的值引起的(因此不包括实际插入 Berekely-DB 和导致的时间由 Berekely 客户提供

这些值是通过为每个键分配一个 stringbuilder 来创建的,并且平均将大约 1000 个字符串附加到这样的 stringbuilder 中。结果值平均约为 10k。我想知道这是否可以更有效地完成,因为: - 附加到每个 Stringbuilders 的(平均)1000 个字符串具有固定长度:即:每个 String 具有相同的长度,并且这个长度是预先知道的) - 所有字符串附加到末尾。

例如,将 stringbuilder 换成 char[] 或 characterStream / writer 会更高效吗?这样我就可以在 char[] 中保留并索引写入的位置。

谢谢, Geert-Jan

0 投票
3 回答
16052 浏览

c# - 有趣的 OutOfMemoryException 与 StringBuilder

我需要在循环中不断构建大字符串并将它们保存到目前偶尔会产生OutOfMemoryException.

这里基本上发生的是我根据一些数据使用XmlWriterwith创建一个字符串。StringBuilder然后我从外部库中调用一个方法,将这个 xml 字符串转换为其他字符串。之后,转换后的字符串将保存到数据库中。对于不同的数据,这整个事情在循环中重复完成大约 100 次。

字符串本身并不太大(每个小于 500kByte),并且在此循环期间进程内存没有增加。但是,偶尔我会得到一个OutOfMemeoryExcpetioninside StringBuilder.Append。有趣的是,这个异常不会导致崩溃。我可以捕获该异常并继续循环。

这里发生了什么?OutOfMemoryException尽管系统中仍有足够的可用内存,为什么我会得到一个?这是一些 GC 堆问题吗?

鉴于我无法规避转换所有这些字符串,我该怎么做才能使这项工作可靠?我应该强制进行 GC 收集吗?应该把 aThread.Sleep放入循环吗?我应该停止使用StringBuilder吗?遇到OutOfMemoryException?

0 投票
6 回答
1636 浏览

c# - .NET 字符串和引用类型参数

以下代码如何工作?

如果两者StringBuilder都是String引用类型,为什么字符串对象在通过AppendBar方法传递时没有改变,而 StringBuilder 对象在传递给AppendFoo方法时改变,因为方法的两个参数都将引用类型作为参数?

0 投票
4 回答
36077 浏览

groovy - Groovy 字面量 StringBuilder/StringBuffer

Groovy 支持使用文字语法来创建 StringBuilder/StringBuffer 而不是通常的

但是,我似乎不记得(或在 Google 上找到)正确的语法。

0 投票
12 回答
42564 浏览

c# - 何时使用 StringBuilder?

我了解 StringBuilder 的好处。

但是如果我想连接 2 个字符串,那么我认为在没有 StringBuilder 的情况下这样做会更好(更快)。它是否正确?

在什么时候(字符串数量)使用 StringBuilder 会变得更好?

0 投票
1 回答
523 浏览

c# - 使用 StringBuilder 的不安全代码和固定语句

我想知道如何将 String 或 StringBuilder 传递给通过参数输出字符串的 C 函数。我找到了一个很好的答案

从 C# 调用非托管函数:我应该传递 StringBuilder 还是使用不安全的代码?

但我有一个疑问。任何人都可以向我解释为什么垃圾收集器在导入函数执行期间不重新定位(托管)StringBuilder 实例?

0 投票
5 回答
7160 浏览

c# - 是否存在绳索数据结构比字符串生成器更有效的情况

此问题相关,基于用户Eric Lippert的评论。

是否存在绳索数据结构比字符串生成器更有效的情况?有些人认为,rope 数据结构在速度方面几乎永远不会比典型情况下的本地字符串或字符串构建器操作更好,所以我很想看到绳索确实更好的现实场景。

0 投票
5 回答
3977 浏览

c# - 清除 StringBuilder 对象的当前字符串

可能重复:
清除 .NET 的 StringBuilder 内容的最佳方法

有没有一种快速简便的方法来摆脱 StringBuilder 目前持有的东西?

我正在寻找一个 Clear() 方法,但我找不到它。;)

我会做

或类似的规定。