Символ 'P' не сравнивается ни с чем в первых String
.
Он сравнивает только первые 4 символа из 2 строк, которые равны друг другу.
Затем возвращается длина первой строки минус длина второй строки.
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
Поскольку вторая String
длиннее, а первая String
содержится во второй, возвращая любую подойдет отрицательное значение, поскольку более короткое значение String
должно стоять на первом месте в лексикографическом порядке.