java - 从 StringBuilder 获取子字符串,并通过 lastIndexOf 计算结束索引,抛出 ArrayIndexOutOfBoundsException

标签 java android indexoutofboundsexception stringbuilder

sb.substring(0, sb.lastIndexOf("\n"));

上面的代码在代码中已经崩溃(不可重现)。 Crashlytics 报告的确切错误如下(如果可能是长度或任何其他方面导致此处出现错误,则给出确切的错误):

Fatal Exception: java.lang.ArrayIndexOutOfBoundsException length=4606; index=4620

有人可以帮助我理解这里的根本原因是什么吗?

最佳答案

如果你处于单线程环境或者不关心线程安全,你应该使用StringBuilder,否则使用StringBuffer。

关于java - 从 StringBuilder 获取子字符串,并通过 lastIndexOf 计算结束索引,抛出 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57435055/

相关文章:

java - Rest.li gradle 配置错误规范未知

android - 如果在屏幕上的任何位置单击,Unity 调用 3d 文本上的触摸功能。而不是只点击文字

Java Swing AbstractTableModel-删除行时出现IndexOutOfBounds异常

java - 数组越界 [ArrayList 的冒泡选择]

java - 列出 Android 中所有可用的通知铃声

java - 将maven依赖迁移到gradle

java - JSONObject (org.json) 到 JsonElement(com.google.gson)

java - Android中如何不使用getLastKnownLocation方法获取当前经纬度?

android - 如何在 Android 8.0 中检查应用程序是否有未知来源

java - 如何防止此 Java 代码中出现 IndexOutOfBoundsException 错误?