int compareStrings(String s1,String s2,int curIndex)
{
if(s1.length()==0 && s2.length()==0) return 0; // equal empty strings
if(s1.length()==0 && s2.length()>0) return -1; // s1 is empty, s1<s2
if(s1.length()>0 && s2.length()==0) return 1; // s2 is empty, s1>s2
if(s1.charAt(curIndex)<s2.charAt(curIndex)) return -1;
if(s1.charAt(curIndex)>s2.charAt(curIndex)) return 1;
if(curIndex+1<Math.min(s1.length(),s2.length()))
{
return compareStrings(s1, s2, curIndex+1);
}
else
{
if(s1.length()==s2.length()) return 0;
else if(s1.length()<s2.length()) return -1;
else return 1;
}
}
函数 compareStrings 如果字符串相等则返回 0,如果 s1 按字典顺序小于 s2 则返回 -1,如果 s1 >s2 则返回 1。一些测试输出:
System.out.println(compareStrings("test","test",0)); // 0
System.out.println(compareStrings("test","tesw",0)); // -1
System.out.println(compareStrings("tesw","test",0)); // 1
System.out.println(compareStrings("tesw","tes",0)); //1
System.out.println(compareStrings("tes","tesw",0)); //-1