我正在编写一个拼写纠正器,为用户提供建议。要做到这一点,我正在使用一个和两个编辑距离的单词。有四种技术:
其中一些需要通过单词进行多次迭代,并执行交换两个字母或在字符串中间添加字母等操作。
我知道String在java中是不可变的,并且字符串生成器中的插入可能会根据需要创建字符串的副本,所以我想知道char数组是否会使这更快。
答案 0 :(得分:6)
很难说 - 没有更多背景 - 各种方法中哪一种最快。 (或者即使速度差异相关;或者速度是最重要的指标)。
您需要针对您的情况对各种方法进行基准测试。
StringBuilder
只是char[]
的包装,增加了必要时调整数组大小等功能;插入/删除等时移动元素。
将char []直接用于某些事情可能会稍微快一些,但是你会失去(或必须重新实现)很多有用的功能。