东家蝴蝶西家飞,白骑少年今日归。 愿,所有迷茫的人,都不再迷茫的,愿,所有努力工作的人,都可以得到应有的回报,愿,所有的人,都可以找到回家的方向,愿,再无苦痛,再无离别。
上一章简单介绍了长字符串中检测短字符串的出现次数(四),如果没有看过,请观看上一章
一. 转换成in
在数据库操作的时候,参数通常不仅仅是普通的值,还有一种 in 的形式。 如查询员工编号是 1,3,6,7 的人。 可以写成 user_id in (‘1’,‘3’,‘6’,‘7’) 这样的形式。 而传入的参数值 一般是 1,3,6,7 。 需要进行相应的转换。 即 1,3,6,7 与 (‘1’,‘3’,‘6’,‘7’) 之间的转换。
二. 替换方法replaceAll()
仔细观察,可以发现 (‘1’,‘3’,‘6’,‘7’) ,可以看成 (’ ,1’,‘3’,‘6’,‘7 ,与’) 的形式。 也就是将, 替换成了’,’ 的形式。
可以利用方法:
protected String toInParam(String str){
//如果为空时,进行处理一下。
if(str==null||"".equals(str)){
return "('')";
}
// 前引号 替换成后引号+','+前引号的形式 后引号
return "('"+str.replaceAll(",", "','")+"')";
}
三.数组转换成in 参数
有的时候,传入的不是字符串,而是一个数组。 需要先将数组转换成字符串,用,进行分隔。 然后再利用上面的toInParam() 方法进行处理即可。
public String toString(int []arr){
StringBuilder sb=new StringBuilder();
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
sb.append(arr[i]);
}else{
sb.append(arr[i]+",");
}
}
return sb.toString();
}
四. 程序代码
@Test
public void testB(){
System.out.println("in形式为:"+toInParam("1,2,3,4,5"));
}
protected String toInParam(String str){
if(str==null||"".equals(str)){
return "('')";
}
return "('"+str.replaceAll(",", "','")+"')";
}
谢谢!!!