function str_split_unicode($str, $l = 0) { if ($l > 0) { $ret = array(); $len = mb_strlen($str, "UTF-8"); for ($i = 0; $i < $len; $i += $l) { $ret[] = mb_substr($str, $i, $l, "UTF-8"); } return $ret; } return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY); } $str = ' z 十 三';echo strlen($str),'--strlen','<br>';echo mb_strlen($str, 'utf-8'),'--mb_strlen','<br>';$arrstr = str_split($str);$arrstr = str_split_unicode($str);//符合要求$temp='';foreach ($arrstr as $val){ $temp.= trim($val);}echo $temp, '<br>';//符合要求,去除空格后的字符串$arrstr = str_split_unicode($temp);//符合要求$temp='%';foreach ($arrstr as $val){ $temp.=$val.'%';}echo $temp,'<br>';//符合要求,加上‘%’后的字符串echo mb_strlen($temp),'<br>';echo mb_strlen($temp, 'utf-8');//符合要求
下面用java代码来实现
/** * */package cn.com.songjy.demo;/** * @author songjianyong * */public class LikeSqlConditionDemo { public static void main(String[] args) { System.out.println(getLikeSqlCondition(" aa a d "));//输出结果是:%a%a%a%d% } public static String getLikeSqlCondition(String condition){ if(condition==null || condition.trim().length()==0) return null; condition = trim(condition);//去除空格 String[] str = condition.split(""); String temp = ""; for (String string : str) { temp+=string+"%"; } return temp; } public static String trim(String str){ String temp = ""; for(int i=0; i<str.length(); i++){ temp = (new StringBuilder()).append(temp).append(str.substring(i, i+1).trim()).toString(); } return temp; }}
在进行like语句查询时候用的到