java - String vs Char Array vs String Builder(效率表现)

标签 java arrays string stringbuilder

我正在编写一个拼写校正器,为用户提供建议。为此,我使用单词 1 和 2 edit distance away。有四种技术:

  • 删除单词的一个字母,
  • 调换两个相邻的字母,
  • 改变单词的一个字母,以及
  • 在单词中插入一个字母。

其中一些需要对单词进行多次迭代,并执行诸如交换两个字母或在字符串中间添加一个字母等操作。

我知道 String 在 java 中是不可变的,并且从字符串构建器插入可能会根据需要创建字符串的副本,所以我想知道 char 数组是否会使它更快。

最佳答案

在没有更多上下文的情况下,很难说各种方法中哪种方法最快。 (或者即使速度差异是相关的;或者速度是最重要的指标)。

您需要针对您的情况对各种方法进行基准测试。


StringBuilder 只是 char[] 的包装器,添加了必要时调整数组大小等功能;以及在插入/删除时移动元素等。

对于某些事情,直接使用 char[] 可能稍微快一些,但是您会失去(或必须重新实现)很多有用的功能。

关于java - String vs Char Array vs String Builder(效率表现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052643/

相关文章:

c++ - 用 ASCII 空格初始化模板<size_t N> std::array<char, N>?

c# - 处理要插入到 XElement 中的字符串

java - 如何使用 java-parser 和 java-symbol-solver 推断函数所有参数的类型?

java - 遇到java.lang.NullPointerException

java - 没有找到适合 JDBC SQL 服务器的驱动程序

python - Python 中的二维数组

java servlet 在 html 代码中显示图像

javascript - 如何根据另一个函数的返回值执行一个函数?

使用 char 数组检查用户在 C 中是否输入空字符串

java - 将 ArrayList 转换为字符串并按 ","分割结果