问题标签 [stringbuffer]

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 投票
1 回答
1293 浏览

c - 理解 C 中的 StrBuff

我需要知道这个 StrBuff 结构是否应该像数组一样运行。我看了又看,老实说不能仅仅因为指针语法而说出来——它看起来像一个数组它可以工作,而作为一个数组它不能工作。

我看到在第二种方法中,使用了 malloc() ,所以我猜测 buf-str uChar 应该是一个数组。

编码:

所以,从这些方法来看,我猜对于任何 C/C++ 资深人士来说,这应该是小菜一碟。

编辑:

我的目标是将应用程序(在此处使用此代码)转换为 Java 端口,但我一直很困惑我应该如何去做。我已经在 J​​ava 中做了(大部分)同样的事情,只是这次使用 byte[] 数组,看看 unsigned chars 应该如何等同于 Java 中的字节。

0 投票
1 回答
334 浏览

c++ - 流缓冲区实现的 std::endl 和 '\n' 之间的差异

我目前正在尝试实现 stringbuf 的子类,以允许缓冲区标记特定字符(在我的情况下为“\n”)并在发生此字符时采取行动(将消息转储到记录器并随后在我的案子)。为了实现这个目标,我覆盖了 sputc (以实现监视 '\n')和 xsputn (确实使用 sputc,因为默认情况下 GCC 实现似乎不这样做)。出于调试目的,我让 sputc 将传递给它的每个字符写出到 stdout。

现在这是我的问题:如果我使用类似的东西

sputc 接收除应由 std::endl 引入的 '\n' 之外的每个字符,因此未完成预期的操作,因为未传递 '\n'。如果我使用类似的东西

甚至

一切都按预期工作,我的 sputc 实现得到了 '\n' 字符。

所以我的问题是:对于后面的stringbuf,两个代码行不应该完全相同吗?如果不是,我必须重写哪些其他方法才能获得'\ n'?

0 投票
5 回答
5205 浏览

java - StringBuffer 已过时?

Josh Bloch 在《Effective Java》一书中说

StringBuffer 在很大程度上已过时,应由非同步实现“StringBuilder”取代

.

但根据我的经验,我仍然看到 StringBuffer 类的广泛使用。为什么 StringBuffer 类现在已经过时了,为什么 StringBuilder 比 StringBuffer 更受欢迎,除了由于非同步而提高的性能?

0 投票
6 回答
1175 浏览

java - Java StringBuffer 中的 deleteCharAt() 有什么用?

我们已经delete()StringBuffer. 为什么我们需要deleteCharAt()?不会deleteCharAt(n)delete(n, n+1)同样的事情吗?

0 投票
5 回答
2465 浏览

java - 字符串连接中使用“+”会影响效率吗?

我在 java 中使用过 String、StringBuilder 和 StringBuffer。
我在从效率的角度思考的时候想到了这个问题。

字符串连接中使用“+”会影响效率吗?

0 投票
2 回答
1273 浏览

java - ParseInt 在读取 StringBuffer 的数字输出时引发异常

我的应用程序读取命令行程序的输出,该输出始终是 0-3 位数字。数据以 stringBuffer 开始,发送到 .toString,第三步是将其转换为整数进行比较。使用 Integer.parseInt 的最后一步会引发 java.lang.NumberFormatException。例如,如果命令行程序的输出是“0”,这是例外。

注意“0”周围的换行符。我知道转换可能很棘手,我检查了字符集并将其明确设置为 UTF-8。此外,我还尝试在转换之前通过此代码检查 '\n' 或其他非数字字符:

此代码可能无法充分揭示故障。但是,如果让程序在不进行整数转换的情况下运行,则每个单个数字都将打印为本身,并且每个多位数字在每行打印一个数字,而没有任何无关字符。

我相当确定我正在尝试转换相关数据以及一些额外的不可见字符。

  1. 我怎样才能弄清楚这些隐形字符是什么?
  2. 摆脱它们并获得仅表示子进程数字输出的整数表示的最佳方法是什么?

供参考:子流程调用的代码:

对于踢球,引发异常的 ParseInt 函数:

提前致谢。

0 投票
2 回答
8934 浏览

java - java中的StringBuffer/StringBuilder大小

全部,

为什么建议StringBuffer/StringBuilder对象的大小应该初始化为 2^{1...n} 的大小(虽然通常它会 > 64)。这样做会有什么优势/优化?

0 投票
10 回答
17823 浏览

java - 这段简单的代码有多复杂?

我正在从我拥有的电子书中粘贴此文本。它说明了 O(n 2 ) 的复杂性并给出了解释,但我看不出如何。

问题:这段代码的运行时间是多少?

书中给出的答案:

O(n 2 ),其中 n 是句子中的字母数。原因如下:每次将字符串附加到句子时,都会创建句子的副本并遍历句子中的所有字母以将它们复制过来如果每次在循环中必须迭代最多 n 个字符,那么循环至少 n 次,这给了你 O(n 2 ) 的运行时间。哎哟!

有人可以更清楚地解释这个答案吗?

0 投票
3 回答
13613 浏览

java - 什么是更有效的 StringBuffer new() 或 delete(0, sb.length())?

人们经常争辩说,避免创建对象(尤其是在循环中)被认为是好的做法。

那么,什么是最有效的StringBuffer呢?

我的意思是,有人可能会争辩说,创建对象比遍历数组更快。

0 投票
5 回答
7087 浏览

java - 从整数值转换为默认值为零的 StringBuffer

我正在尝试形成一个初始值为 00000 的 StringBuffer ..

我的问题是初始值取决于一个整数变量,并且基于整数变量的值,StringBuffer 中应该有许多零。

例如 int length=9,因此我的 StringBuffer 应该以 000000000....(9 个零)...

我没有办法摆脱这个问题。任何人都可以请指导我。

我想出的一种方法是获取整数值并将那么多值存储在字符串数组中,然后将字符串数组写入 StringBuffer,但这似乎是一种非常低效的方法。请指导我。