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 = &#39; z 十 三&#39;; echo strlen($str),&#39;--strlen&#39;,&#39;
&#39;; echo mb_strlen($str, &#39;utf-8&#39;),&#39;--mb_strlen&#39;,&#39;
&#39;; $arrstr = str_split($str); $arrstr = str_split_unicode($str);//符合要求 $temp=&#39;&#39;; foreach ($arrstr as $val){ $temp.= trim($val); } echo $temp, &#39;
&#39;;//符合要求,去除空格后的字符串 $arrstr = str_split_unicode($temp);//符合要求 $temp=&#39;%&#39;; foreach ($arrstr as $val){ $temp.=$val.&#39;%&#39;; } echo $temp,&#39;
&#39;;//符合要求,加上‘%’后的字符串 echo mb_strlen($temp),&#39;
&#39;; echo mb_strlen($temp, &#39;utf-8&#39;);//符合要求
下面用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