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; } }