public class CustomString {
public char value[];
public int offset;
public int count;
public int hash;
}
CustomString one = new CustomString();
char valueOne[] = {'A','N'};
one.count = 2;
one.hash = 0;
one.offset = 0;
one.value = valueOne;
CustomString two = new CustomString();
char valueTwo[] = {'F','A','N'};
two.count = 3;
two.hash = 0;
two.offset =1;
two.value = valueTwo;
compareTo(one,two)
compareTo 메소드 : "FAN은"나는 1로 오프셋 사용한에 대한 이후로직 (오프셋의 역할) 문자열의
public static int compareTo(CustomString one, CustomString two) {
int len1 = one.count;
int len2 = two.count;
int n = Math.min(len1, len2);
char v1[] = one.value;
char v2[] = two.value;
int i = one.offset;
int j = two.offset;
if (i == j) {
int k = i;
int lim = n + i;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
} else {
while (n-- != 0) {
char c1 = v1[i++];
char c2 = v2[j++];
if (c1 != c2) {
return c1 - c2;
}
}
}
return len1 - len2;
}
, 나는 FAN "의"을 "생각 에 ""와 비교 될 것이다 "하고 compareTo
String
의 반환 return len1 - len2;
때문에하지 않았다 0.But 반환
내 질문은, compareTo
방법 offset
의 목적은 무엇인가? 항상 오프셋은 0.입니다. 둘 다 또는 다른 오프셋을 사용하여 예제를 제공 할 수 있습니까?
당신은 java.lang.String에 대해 이야기하고 있습니까? CustomString이란 무엇입니까? 이게 당신의 코드입니까 아니면 다른 사람입니까? – aioobe
예. java.lang.String에 대해 얘기했습니다. 오프셋을 0 이외의 값으로 변경하여 compareTo를 디버깅하고 싶었습니다. 그래서 java.lang.String을 시뮬레이트하기 위해 'CustomString' 클래스를 작성했습니다. – user104309