我已经排序了我在php和java之间移动的字符串列表。为了能够研究这些数据,我需要相同的比较功能。
任何想法我可以使用哪些字符串比较函数,它们总是会给出相同的结果?例如php的strcmp()vs java的String.compareTo()
是的我知道我可以自己做一个字符串比较,仔细查看char,但我希望有一个简单的答案。
PS,如果区分大小写,请不要关心,只要它是一致的。
答案 0 :(得分:1)
因为在这种情况下允许php代码很慢,所以我最终滚动了自己......
function unicodeStrCmp($s1,$s2)
{
// designed to be same as java's String.compareTo
// not extensivley tested, and doesn't deal with surrogate pairs
$l1 = mb_strlen($s1);
$l2 = mb_strlen($s2);
$i = 0;
while ($i<$l1 && $i<$l2)
{
$c1 = mb_convert_encoding(mb_substr($s1,$i,1),'utf-16le');
$c1 = ord($c1[0])+(ord($c1[1])<<8);
$c2 = mb_convert_encoding(mb_substr($s2,$i,1),'utf-16le');
$c2 = ord($c2[0])+(ord($c2[1])<<8);
$res = $c1-$c2;
if ($res!=0)
return $res;
$i++;
}
return $l1-$l2;
}
答案 1 :(得分:0)