String s1 = "Java";
String s2 = "Python";
System.out.println(s1.equals(s2)); // 문자열 내용이 같으면 trye, 다르면 fales
System.out.println(s1.equals("Java"));
System.out.println(s2.equals("python"));
System.out.println(s2.equalsIgnoreCase("python")); // 대소문자 구분 없이 문자열 내용이 같은지 여부
예시에서 사용한 s1.equals(s2)는 s1과 s2 문자열의 내용이 같은지를 확인합니다. 첫 번째 예시에서 s1은 "Java", s2는 "Python"이므로, 이 비교는 false를 반환합니다. 반면에, s1.equals("Java")는 s1이 "Java"와 같은지를 비교하기 때문에 true를 반환합니다.
equalsIgnoreCase() 메서드는 equals()와 유사하지만 대소문자를 구분하지 않습니다. 예를 들어, s2.equalsIgnoreCase("python")은 s2가 "Python"이지만, 대소문자를 구분하지 않으므로 true를 반환합니다.
s1 = "1234"; // 참조
s2 = "1234";
System.out.println(s1.equals(s2)); // true 내용을 비교
System.out.println(s1 == s2); //true -> 참조하는 것이 같은지
s1 = new String("1234");
s2 = new String("1234");
// s1 과 s2 가 다른 참조 이기 때문에 다르다.
System.out.println(s1.equals(s2)); // true -> 내용만 비교
System.out.println(s1 == s2); // false -> 참조가 다르기 때문에 다르다고 판단함
예를 들어, s1 = "1234"와 s2 = "1234"에서는 두 문자열이 같은 리터럴이므로 Java에서는 동일한 메모리 위치를 참조합니다. 따라서 s1 == s2는 true를 반환합니다. 그러나 s1 = new String("1234")와 s2 = new String("1234")에서는 new 키워드를 사용하여 각각 다른 객체를 생성합니다. 이 경우, 각 객체는 메모리 상에서 다른 위치를 차지하므로 s1 == s2는 false를 반환합니다.
이스케이프 문자는 문자열 내에서 특수한 효과를 부여하거나, 보통의 텍스트로는 표현하기 어려운 문자를 표현하는 데 사용됩니다. 예를 들어, 줄바꿈이나 탭과 같은 공백 문자를 정확하게 표현하거나, 문자열 내에서 따옴표를 사용해야 할 때 매우 유용합니다.
Java와 같은 프로그래밍 언어에서 이스케이프 문자의 이해는 문자열을 더욱 효과적으로 다루는 데 필수적입니다. 이러한 문자들은 코드의 가독성을 높이고, 복잡한 문자열 형식을 간단하게 표현하는 데 도움을 줍니다.