Я пытаюсь понять, как вручную вычислять вывод при сравнении строк, поскольку такие вопросы, как он появился в прошлых документах, я практикую.Вручную вычислять выходные данные из строки compareTo string
Я понимаю, что результат отрицательный, если строка лексикографически (в соответствии с unicode) предшествует строке аргумента, положительной, если она следует, и равна нулю, если они равны. Я не вижу, как вычислить значение (вне знака).
Я код, который дает выход 1, -1, -3, 3. Я вижу, почему каждый является положительным или отрицательным, но не то, почему это 1 или 3.
public class CompareToPractice {
public static void main(String[] args) {
String str1 = "bode";
String str2 = "bod";
String str3 = "bodge";
String str4 = "bog";
int result1 = str1.compareTo(str2);
System.out.println(result1);
int result2 = str2.compareTo(str1);
System.out.println(result2);
int result3 = str3.compareTo(str4);
System.out.println(result3);
int result4 = str4.compareTo(str3);
System.out.println(result4);
}
}
Спасибо
Согласно к контракту, имеет значение только знак. Если вам интересно узнать о реальной реализации, просто посмотрите на [источник] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang /String.java#String.compareTo%28java.lang.String%29). – shmosel
Что вы подразумеваете под «контрактом» shmosel? –
документация интерфейса 'Comparable'. – shmosel