대소문자 변환
String.toLowerCase()
→ return String
String.toUpperCase()
→ return String
문자열 비교
- 참조형의 비교 연산자는 가리키는 인스턴스가 같은 인스턴스인지 확인하는 역할
String myString = "aBc";
System.out.println(myString.toLowerCase() == "abc"); // false
내용이 같은지 비교하려면 ==가 아니라 equals
메소드
String myString = "aBc";
System.out.println(myString.toLowerCase().equals("abc")); // true
switch문 내부에서는 ==
대신 equals
메소드가 기본적으로 쓰임
public class Main {
public static void main(String[] args) {
String myString = "apple";
System.out.println(myString.toUpperCase() == "APPLE"); // false
String youString = "samsung";
System.out.println(youString.toLowerCase() == "samsung"); // true
String youString1 = new String("samsung"); //1
String youString2 = new String("samsung"); //2
String youString3 = "samsung"; //3
String youString4 = "samsung"; //4
}
}
- String 클래스의 생성자를 쓰게 되면 new 연산자에 의해 항상 메모리 주소에 새롭게 값이 할당
- 하지만
String youString = "samsung"
과 같이 문자열 리터럴을 이용하여 생성할 때는 새롭게 생성하지 않고 기존에 메모리에 할당된 값을 그대로 쓰게 됨
==
은 값이 할당된 주소를 비교해서 true, false 를 반환하기 떄문에
- new 연산자로 만들어진 1,2는 다른 메모리 주소를 가지고
- 문자열 리터럴을 이용한 3,4는 같은 메모리 주소에 할당된 값을 쓴다.