在php和java中需要相同的字符串比较功能

时间:2010-03-26 03:08:46

标签: java php string

我已经排序了我在php和java之间移动的字符串列表。为了能够研究这些数据,我需要相同的比较功能。

任何想法我可以使用哪些字符串比较函数,它们总是会给出相同的结果?例如php的strcmp()vs java的String.compareTo()

是的我知道我可以自己做一个字符串比较,仔细查看char,但我希望有一个简单的答案。

PS,如果区分大小写,请不要关心,只要它是一致的。

2 个答案:

答案 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)