이 글에서는 두 개의 문자열이 동일한지 판단하는 데 있어서 Java와 JavaScript의 차이점을 주로 소개합니다. 매우 좋고 참고할 만한 가치가 있습니다.
Javascript는 일반적으로 사용되는 스크립팅 언어이지만 다른 프로그래밍 언어에 비해 표준화되어 있지 않다고 판단합니다. Javascript에서 두 문자열이 동일한지 확인하려면
직접 ==를 사용하세요. this C++의 String 클래스와 동일합니다. Java의 등호는 두 문자열의 참조가 동일한지 확인하는 데 사용됩니다. >
또는 CompareTo() 메서드에서 강조해야 할 것은 equals() 메서드의 매개 변수 유형이 확실히 String 클래스가 아니라일부 국내 튜토리얼에서 String 클래스(o(╯□╰)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 클래스인지 살펴보겠습니다. 먼저 두 참조가 동일한지 판단합니다. 다음으로 클래스 변환이 포함됩니다.
하위 클래스에서 생성된
를 상위 클래스에 할당합니다. 이를 상향 변환 객체라고 합니다. 이를 바탕으로 상위 클래스 객체를 하위 클래스 객체로 변환할 수도 있습니다. 간단히 말해서 클래스 간 변환에는 특정 조건이 있으며, 판단하려면 인스턴스를 사용해야 합니다. 각 클래스의 equals() 메소드는 Object 클래스에서 나오므로, equals() 메소드의 매개변수 유형이 Object 클래스라는 것을 이해하는 것은 어렵지 않습니다. Java에서 String 클래스의 CompareTo()
메서드는 언급할 가치가 있습니다.
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; }
compareTo()의 매개 변수는 String 클래스입니다. 왜냐하면 String 클래스가 Comparable 인터페이스를 구현하기 때문입니다. 기본적으로 대부분의 클래스는 이 인터페이스를 구현했습니다(ps: 하나는 상속에서 나오고 다른 하나는 인터페이스에서 나오므로 두 매개변수 유형이 일치하지 않습니다).
위 내용은 Java와 JavaScript에서 두 문자열이 같은지 판단하는 것의 차이점에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!