java字符串判断是否含有单引号,今天做个医院的的查询单位疾病分析报告问题是,医院的医生要求查询是两个单位的一起查询,所以我写sql时就考虑到了用 in 查询,传值的时候用" , " 分格开..........如" xxxxxx,cccccc ", 但传过去的时要考虑给xxxxxx 和cccccc 这个两个字符串加单引号,就是变成这样 " 'xxxxxx','cccccc' "...
给大家上 个加单引号的方法看看
/*字符串按,分开并都加上''再转换成字符串*/
public static String getString(String s){
if(s.contains(",")){
StringBuffer sb=new StringBuffer();
String[] str=s.split(",");
for(int i=0;i<str.length;i++){
if(i!=0){
sb.append(",");
}
sb.append("'").append(str[i]).append("'");
}
return sb.toString();
}
return "'"+s+"'";
}
这是action里面加单引号方法
qureyBean.setCom_batch_id(UtilAPI.getString(qureyBean.getCom_batch_id()));
所以第一次去查询的时候是可以查询的,..... " xxxxxx,cccccc "变成了 " 'xxxxxx','cccccc' "
但第二次,加个查询时间 在点查询 之前的" 'xxxxxx','cccccc' " 就变成了" ''xxxxxx'',''cccccc'' "
就多了单引号 ,就报错了
所以为了避免这个问题 我想到了个简单的方法
//判断是否有单引号问题
if(qureyBean.getCom_batch_id().indexOf("'") != -1)
{
qureyBean.setCom_batch_id(qureyBean.getCom_batch_id());
}
else{
qureyBean.setCom_batch_id(UtilAPI.getString(qureyBean.getCom_batch_id()));
}
对 就是用 .indexOf("'") != -1 ,,,,就这样问题解决了