java是搜索字符串中的一个字母并在字母前加上“a”的最佳算法?
我需要在数组的数千个字符串中搜索字符'
。如果我找到字符'
,那么我必须在它前面放置另一个字符'
。像这样:''
例如,假设这个数组上有1000个字符串:List <String> strings.
例如,这是我的一个字符串:
"I have some Levi's shoes."
算法必须将字符串转换为:"I have some Levi''s shoes."
我必须检查数组的所有数千个字符串strings
实现这一目标的最佳有效方式是什么
谢谢
# 1 楼答案
最简单的方法是迭代数组中的字符串,并对每个字符串使用^{} ,将结果分配回数组
# 2 楼答案
您可以使用
replaceAll
方法或replace
。它只是在字符串上迭代并替换字符。这两种方法都编译regex
并使用StringBuffer
。在你的情况下,你不需要正则表达式。也许您可以用您的实现稍微增强它,您不需要正则表达式,您可以尝试StringBuilder
,相反,它是不同步的# 3 楼答案
您实际上是在进行最坏情况下的文本搜索,即单个字符。我认为获得真正加速的唯一方法是分配工作并使用更多线程来加快速度。多核CPU或GPU确实可以加快您的搜索速度,我知道这两者都有Java绑定/库
# 4 楼答案
tryStringUtils.replace(String str, String searchChars, String replaceChars)(apachecommons)
# 5 楼答案
对于单个字符串:
有关字符串列表,请执行以下操作:
正如Jon Skeet指出的,
replace
比replaceAll
好,因为您不必为简单的字符序列编译和运行正则表达式