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'<em style="color:transparent">本@文来源[email protected]搞@^&代*@码网(</em><q>搞代gaodaima码</q>,'<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;}}