자바 와 자 바스 크 립 트 에서 두 문자열 의 차이 점 을 판단 합 니 다.
직접 사용==,이것 은 C++의 String 클래스 와 같 습 니 다.자바 의 등 호 는 두 문자열 의 인용 여 부 를 판단 하고 실 체 를 equals()방법 으로 판단 하거나
compare To()방법,여기 서 강조해 야 할 것 은 equals()방법의 매개 변수 유형 입 니 다.그 매개 변수 유형 은 String 류 가 아니 라 Object 류 입 니 다.우 리 는 한 번 만 보 는 것 이 아 닙 니 다.
국내 일부 튜 토리 얼 은 String 류(o(s□t)o 라 고 쓰 여 있다.
JDK 의 소스 코드 를 보 실 수 있 습 니 다.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
우 리 는 매개 변수 유형 이 Object 류 인 것 을 볼 수 있 습 니 다.이 코드 를 말 하 는 김 에 먼저 이들 의 인용 이 같 는 지 판단 하고 같은 것 을 인용 하면 실체 가 똑 같 습 니 다.그 다음 에 유형의 전환 과 관련 됩 니 다.우 리 는 하위 클래스 가 만 든 대상 을 부모 클래스 에 부여 합 니 다.우 리 는 이 를 상 전환 대상 이 라 고 부 릅 니 다.이 를 바탕 으로 부모 대상 을 하위 대상 으로 바 꿀 수도 있다.쉽게 말 하면 클래스 간 의 전환 은 일정한 조건 이 있 고 인 스 턴 스 of 로 판단 해 야 한다.
각 클래스 의 equals()방법 은 Object 류 에서 유래 한 것 으로 equals()방법의 매개 변수 유형 이 Object 류 라 는 것 을 이해 하기 어렵 지 않 습 니 다.특히 자바 에서 String 류 의 compare To()
방법:
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;
}
compare To()의 매개 변 수 는 String 류 입 니 다.String 류 는 Comparable 인 터 페 이 스 를 실 현 했 기 때 문 입 니 다.기본적으로 대부분의 클래스 는 이 인 터 페 이 스 를 실 현 했 습 니 다.(ps:하 나 는 계승 에서 유래 하고 하 나 는 인터페이스 에서 유래 합 니 다.이것 이 바로 이들 의 매개 변수 유형 이 일치 하지 않 는 원인 입 니 다.)위 에서 말 한 것 은 소 편 이 소개 한 자바 와 자바 스 크 립 트 에서 두 문자열 의 차이 점 을 판단 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.