스칼라에서 문자열 비교하기
이 기사에서는 Scala 프로그래밍 언어에서 두 문자열을 비교하는 방법을 배웁니다.
두 문자열이 동일한 문자 시퀀스를 갖는 경우 동일한 것으로 간주됩니다. 이제 Scala에서 문자열을 비교하는 다양한 접근 방식을 살펴보겠습니다.
스칼라에서 equals()
메서드를 사용하여 문자열 비교
스칼라에서 String
클래스에는 두 문자열이 같은지 확인하는 equals()
메서드가 있습니다.
통사론:
string_one.equals(string_two)
string_one
과 string_two
가 모두 같으면 이 함수는 true
를 반환합니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val one = "Tony"
val two = "Tony"
val ans = one.equals(two)
println(ans)
}
}
출력:
true
한 가지 주의할 점은 equals()
메서드는 대소문자를 구분하므로 tony
와 Tony
가 다르게 취급된다는 의미입니다. 이를 극복하기 위해 String
클래스에 equalsIgnoreCase()
메서드를 사용할 수 있습니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val one = "Tony"
val two = "toNy"
val ans = one.equalsIgnoreCase(two)
println(ans)
}
}
출력:
true
참고:
String
클래스의equals()
함수를 호출하는 문자열(위 코드의one
문자열과 같이)은null
이 아니어야 합니다. 그렇지 않으면NullPointerException
이 발생합니다.
Scala에서 ==
연산자를 사용하여 문자열 비교
==
메소드를 사용하여 Scala에서 두 문자열을 비교할 수 있습니다.
통사론:
string_one == string_two
==
메소드는 string_one
과 string_two
가 같은지 확인합니다. 두 문자열이 같으면 true
를 반환합니다. 그렇지 않으면 거짓
을 반환합니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
val two = "tony"
if(one==two)
println(true)
else
println (false)
}
}
출력:
true
문자열이 대소문자를 구분한다는 것을 알고 있다면 equals()
메서드보다 ==
를 사용하는 주요 이점 중 하나는 문자열 중 하나가 null
인 경우에도 NullPointerException
이 발생하지 않는다는 것입니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
if(one == null)
println(true)
else
println (false)
}
}
출력:
false
백엔드에서 ==
메소드는 먼저 null
값을 확인한 다음 첫 번째 문자열 객체로 equals()
메소드를 호출하여 동일한지 확인합니다. 이러한 이유로 ==
메서드는 대소문자를 구분하는 방식으로 문자열을 비교하지 않습니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
val two = "TONY"
if(one == two)
println(true)
else
println (false)
}
}
출력:
false
이러한 대소문자 구분 상황을 극복하기 위해 두 문자열을 모두 대문자 또는 소문자로 변환한 다음 비교할 수 있습니다.
예제 코드:
object MyClass {
def main(args: Array[String]) {
val one = "tony"
val two = "TONY"
if(one.toLowerCase() == two.toLowerCase())
println(true)
else
println (false)
}
}
출력:
true
위 코드에서는 toLowerCase()
메서드를 사용하여 두 문자열을 모두 소문자로 변환한 다음 ==
메서드를 사용하여 비교했습니다.
자바와 스칼라에서의 평등
Java와 Scala는 평등에 관한 정의가 다릅니다. Java에는 주로 같음을 확인하는 두 가지 방법이 있습니다. 하나는 참조
같음을 엄격하게 확인하는 ==
연산자를 사용하는 것이고 다른 하나는 재정의하여 내용을 확인할 수 있는 equals()
메서드입니다. 사물.
스칼라에서 ==
메소드는 모든 유형을 비교하는 데 사용할 수 있습니다. 즉, a==b
는 동일한 객체를 참조하거나 동일한 값을 포함하는 경우 true
를 반환합니다. 그리고 Scala에서 ==
메소드는 모든 클래스에 정의된 final
메소드입니다.