Java

[Java] 대소문자 변환 / equals 와 ==

효진인데요 2023. 1. 21. 16:14

1. String  문자열 대문자, 소문자 변환

 

String myString = "aBcDe";

System.out.println(myString.toUpperCase()); // ABCDE 출력
System.out.println(myString.toLowerCase()); // abcde 출력
System.out.println(myString); 	    	// aBcDe 출력

 

 

Java에서는 문자열을 대문자로, 혹은 소문자로 변경하는 내장 함수를 제공하고 있다.

 

  • toUpperCase() -> 대문자형으로 변환
  • toLowerCase() -> 소문자형으로 변환

 

위 코드에서 두 메소드는 myString의 값 자체를 변경하는 것이 아닌

새로운 문자열을 리턴하는 것이기 때문에

myString의 값 자체는 변하지 않는다.

 

 

2. equals 메소드

 

String myString = "aBcDe";
System.out.println(myString.toLowerCase() == "abcde");	// false

 

aBcDe를 모두 소문자로 바꾼 뒤 abcde와 같은지 비교를 해보려고 하는데 false가 출력된다.

왜? 이유가 뭘까??

 

 

 

기본형의 == 연산자는 양쪽 값이 같으면 true를 출력하지만,

위와 같이 참조형 변수의 경우 각각의 인스턴스의 참조 값을 확인하게 된다.

 

 

위에서 말했던 것 처럼 .toLowerCase는 값 자체를 변경하는 것이 아니라 새로운 문자열을 리턴하는 것이기 때문에,

두 문자열의 실제 주소가 달라 false가 출력되는 것이다.

 

 

 

String myString = "aBcDe";
System.out.println(myString.toLowerCase().equals(abcde));	// true

 

문자열의 내용 자체가 같은지 확인하려면 이렇게 equals 메소드를 사용하면 된다.

 

 

 

 


 

 

 

 

 

 

예전에 정리해둔 자료.. 오랜만에 꺼내보니 새롭다 ^^7

728x90

'Java' 카테고리의 다른 글

[IntelliJ] Gradle Dependencies refresh  (1) 2023.09.27
[Java] 자바의 변수들  (0) 2023.01.21