问题标签 [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.
java - java中的固定长度StringBuffer
在 java 中保持字符串缓冲区长度固定的最佳做法是什么?也就是说,如果固定值为 10 并且 stringbuffer 包含 ABCDEFGHIJ,当我们附加 K 时,这将导致 A 被清除并且结果值将是 BCDEFGHIJK。我正在考虑使用 StringBuffer 的 reverse() 和 setLenght() 方法组合但不知道100 K 长度的性能如何。
android - Android 从网络读取 917KB 文件会导致内存错误?
我怀疑这是创建了太多字符串的事实。我如何查看是否可以使用 readline 并将 lineread 直接插入 stringbuilder。还有什么其他方法可以做到这一点?该文件不到 1MB
这是日志:
09-27 12:56:07.740:错误/错误:LDataListView 中的问题:refreshError 09-27 12:56:07.740:错误/错误:-------- ------------------------ 09-27 12:56:13.339: 错误/Dhcpcd(10598): 发送带有 xid 0x5a93b3de 的 DHCP_REQUEST,下一个在 3.58 秒内09-27 12:56:13.549:错误/dalvikvm-heap(12862):6064234 字节分配内存不足。09-27 12:56:13.549:错误/dalvikvm(12862):内存不足:堆大小=15687KB,分配=6704KB,位图大小=8617KB 09-27 12:56:13.559:错误/AndroidRuntime(12862):致命例外:主要 09-27 12:56:13.559:错误/AndroidRuntime(12862):java.lang.OutOfMemoryError 09-27 12:56:13.559:错误/AndroidRuntime(12862):在 java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder .java:97) 09-27 12:56:13.559: 错误/AndroidRuntime(12862): 在 java.lang.AbstractStringBuilder.append0(AbstractStringBuilder. 错误/AndroidRuntime(12862): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 09-27 12:56:13.559: 错误/AndroidRuntime(12862): 在 dalvik.system.NativeStart.main (本机方法)09-27 12:56:14.819:错误/ActivityManager(101):设置顶部应用程序更改失败!09-27 12:56:48.499: 错误/BluetoothHeadsetService(201): java.util.NoSuchElementException
编辑:::
更多信息:
它是一个 JSON 字符串。基本上是带有一组项目的单个对象。整个提要中到处都是编码图像,这使得它比应有的大得多(不幸的是,这不是我的提要)。iphone 似乎可以读取它,但我的 HTC 手机有时会读取它,但通常会在 sb 附加行上遇到内存异常。
我也尝试过直接阅读它,例如:
但也有同样的问题。
java - 存储在字符串中
我在属性文件中以 3 个不同的行列出了 3 个不同的单词。QWERT 警察事务
我想读取该属性文件并将这 3 个单词存储在字符串中,而不是存储在由空格分隔的 aarylist 中。输出应如下所示 String str = { QWERT POLICE MATTER}
现在我使用了以下代码并在单词之间获得了没有空格的输出:String str = {QWERTPOLICEMATTER}。我应该对代码做些什么来获得用空格分隔的单词的字符串结果。
android - Android 中 String、StringBuffer 和 StringBuilder 的内存不足异常
我在将 1.8MB 图像转换为字节然后加密时遇到内存不足异常,最后转换为字符串(日志中打印的长度为 1652328)。然后,我将此字符串附加到一些 XML 格式以发布,真正的问题出现了。StringBuffer
在使用或StringBuilder
添加到此图片字符串中添加一些标签时,发生内存不足异常。我该如何解决这个问题?
对于小图像,此问题不会复制。
下面的一段代码将路径中的图片转换path
为String
.
以上byteString
内容附加到 xml 帖子中,如下所示。
更新
在上面的附加中,编码byteStream
使用密码 AES 加密,然后附加到StringBuilder
.
java - 将多行 JTextArea 写入 txt 文件
所以我有一个JTextArea
供用户输入的内容,然后当他们单击一个按钮时,它会将其写入文本文件,我同时拥有setLineWrap
并setWrapStyleWord
设置true
为JTextArea
.
我想以文本框中出现的确切方式写入文本文件。
我试图对replace("\n", System.getProperty("line.separator"))
保持String
哪些内容JTextArea
有效,但前提是用户在输入输入时实际上按下了返回键,但如果用户只是继续输入并点击行尾,那么它会跳转到它下面的线,replace
不起作用。
我也尝试过使用 a StringBuffer
,我计算了在线可以容纳多少个字符,然后在for loop
inserting
每行的末尾运行一个新行,因此对于第一行,我将它添加到 position 90
,第二行 at 180
,第三行 at270
等等. 但我很快意识到这并不适用于所有情况,因为有些字符比其他字符小,例如,你可以j
在一行中放置更多的 's 而不是p
's。
我想做的只是想办法计算行尾,这样我就知道insert
新行的位置,但我也愿意接受其他建议。谢谢。如果您认为查看我的一些代码会有所帮助,请询问。
更新 我没有实现代码来执行此操作,而是与几乎是唯一使用该程序的人之一交谈的人,他对常规记事本格式很好,我没有意识到,但只要他检查了 wordWrap 在他的记事本格式设置,这将消除他必须使用侧滚动来阅读整行,感谢您的输入
java - 获取 Stringbuffer 中换行符开始的索引
循环通过 StringBuffer 时,我需要获取新行的起始位置。假设我在字符串缓冲区中有以下文档
在“test”、“Test”和“Testing”之后存在新行。
我需要类似的东西:
我知道这行不通,因为 '\n' 不是字符。有任何想法吗?:)
谢谢
java - 出现在下拉列表中的值的顺序发生变化
我有一个按数字和字母顺序排序的值的数组列表。例如。该列表具有值(以相同的顺序),例如 1, 2, 5, 10, 100, A012B, AB, XY, Z。
我使用 for 循环将此列表添加到 StringBuffer 并将 Stringbuffer 对象作为字符串返回(通过sbf.toString()
),因为我的方法只能返回 String 类型(根据方法声明)。我无法更改返回类型(它必须是 String,因为我的框架只接受 String 类型)。
返回的值显示在下拉列表中。但是值的顺序正在改变并显示为1, 10, 100, 2, 5, A012B, AB, XY, Z。我希望这些值以与它们在 arraylist 中存在的方式相同的方式显示。你能帮我吗?
java - 在 Java 中将 StringBuffer 转换为字节数组
在 Java 中,我如何将 StringBuffer 转换为字节数组?
java - StringBuffer 的容量是多少?
当我运行此代码时:
它给出输出:
长度:17,容量:33
明显的长度与字符串中的字符数有关,但我不确定容量是多少?StringBuffer 在重新分配空间之前可以容纳的字符数是多少?
java - 数组列表输出
我目前正在使用迭代器来输出一个数组列表,但我想将它全部输出在一行上。我认为我最好的选择是使用字符串缓冲区,但有人有更有效的方法吗?
我目前的输出方法是这样的:
这样做根本没有效率,但我目前所了解的一切: