Java 搜索字符串中的字母并放入';在写信之前?
我需要在数组的数千个字符串中搜索字符Java 搜索字符串中的字母并放入';在写信之前?,java,algorithm,Java,Algorithm,我需要在数组的数千个字符串中搜索字符“。如果我找到字符”,那么我必须在它前面放置另一个字符“。像这样:' 例如,假设此数组中有1000个字符串:列出字符串。例如,这是我的一个字符串: "I have some Levi's shoes." 算法必须将字符串转换为:“我有一些Levi's鞋。” 我必须检查数组中的所有数千个字符串strings 实现这一目标的最佳有效方式是什么 感谢您提供的单个字符串: myString = myString.replace("'", "''"); 有关字符串列
“
。如果我找到字符”
,那么我必须在它前面放置另一个字符“
。像这样:'
例如,假设此数组中有1000个字符串:列出字符串。
例如,这是我的一个字符串:
"I have some Levi's shoes."
算法必须将字符串转换为:“我有一些Levi's鞋。”
我必须检查数组中的所有数千个字符串strings
实现这一目标的最佳有效方式是什么
感谢您提供的单个字符串:
myString = myString.replace("'", "''");
有关字符串列表,请执行以下操作:
for(int i=0;i<myList.size();i++){
myList.put(i, myList.get(i).replace("'", "''"));
}
用于(int i=0;i最简单的方法是迭代数组中的字符串,并对每个字符串使用,将结果分配回数组。您可以使用replaceAll
方法或replace
。它只需迭代字符串并替换字符。这两种方法都编译regex
并使用StringBuffer
。您可以在您的情况下不需要正则表达式。可能您可以通过实现稍微增强它,您不需要正则表达式,您可以尝试StringBuilder
,而不是同步的。尝试(apache commons)实际上,您正在进行最坏情况下的文本搜索——这是一个字符。我认为获得真正加速的唯一方法是划分工作并使用更多线程来加快搜索速度。多核CPU或GPU确实可以加快搜索速度,我知道Java绑定/库两者都有。我建议使用replace
而不是replaceAll
,以避免在这里实际不有用时使用正则表达式。这也会将double“变成quad”-这可能是要求的一部分,也可能不是要求的一部分。@JonSkeet我会有,但java的String.replace()
两个参数只接受单个char
。为了提高性能,您必须实现自己的replace
方法。@b战神:不,没有,有一个replace(CharSequence,CharSequence)
replace(CharSequence,CharSequence)
不使用正则表达式。我没有进行向下投票,但该方法不能满足OP的需要。您不能使用它将一个字符替换为两个字符。您可能是指InStead向下投票,因为在标准类库中为可用的方法(在字符串上,不少于字符串)添加对apache commons的依赖关系这是一个坏主意。你是对的,把它作为解决问题的一个选项,不是添加依赖项的最佳解决方案/视图,而是从测试的角度来看更安全(空检查等)