在SQL插入之前逃离charArray的最快方法

时间:2017-06-27 15:47:26

标签: java arrays char escaping

我有一个char [] originalCharArray的大小。

我想创建一个新的char [] returnCharArray,这样每次char'出现在原始char []中,另外一个将添加:

"Hello' World" ---> "Hello'' World"

这样做的最快方法是什么? 我想将returnCharArray定义为原始charArray大小的x2,并从原始charArray中逐个复制chars(在需要时添加额外的'然后在最后删除多余的分配空间)(这个额外的空间是否重要?)

我还想过StringBuilding,但后来我必须转换为String然后转换为CharArray。

最佳做法是什么?

2 个答案:

答案 0 :(得分:2)

您描述的通过字符串执行此操作的方法可能是最简单且最不痛苦的方法。只需创建一个新的String,然后将单引号全面替换为两个单引号。

String str = new String(originalCharArray);
str = str.replaceAll("'", "''");
char[] newCharArray = str.toCharArray();

Demo

答案 1 :(得分:1)

您可以使用replaceAll'替换为''

char[] c = new char[]{'H','e','l','l','o','\'',' ','W','o','r','l','d'};
String s = String.valueOf(c);
System.out.println("Before : " + s );

s = s.replaceAll("'", "''");
System.out.println("After : " + s );

char[] c_modified = s.toCharArray();

System.out.println( Arrays.toString(c_modified) );

输出:

Before : Hello' World 
After : Hello'' World
[H, e, l, l, o, ', ', , W, o, r, l, d]