>웹 프론트엔드 >JS 튜토리얼 >Java와 JavaScript에서 두 문자열이 같은지 판단하는 것의 차이점에 대한 자세한 소개

Java와 JavaScript에서 두 문자열이 같은지 판단하는 것의 차이점에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-20 14:56:561448검색

이 글에서는 두 개의 문자열이 동일한지 판단하는 데 있어서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.