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, если строки равны, -1, если s1 лексически меньше, чем s2, и 1, если s1> s2. Некоторые тестовые выходы:
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
Вы можете использовать функцию рекурсии. –
Рекурсия состоит из определения двух вещей: базовый случай (например, если любая строка равна «», мы возвращаемся немедленно) и условие рекурсии (например, мы уменьшаем символ одной из двух строк, когда мы называем себя, доказывая, что мы в конечном итоге доходите до основания). Затем просто добавьте логику, чтобы вернуть true/false. – Patashu
Если вам нужна рекурсия, вы должны попробовать рекурсию – Craig