Java Study - 5

Paul Jo·2023년 12월 25일
0

Java study

목록 보기
5/5

자바 기초 - 5회차

문자열 비교

  1. equals() 메서드를 사용한 문자열 비교
    equals() 메서드는 두 문자열의 내용이 같은지를 비교합니다. 이 메서드는 문자열의 값 자체를 비교하기 때문에, 실제로 저장된 문자들이 같은지를 확인합니다.
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를 반환합니다.

  1. == 연산자를 사용한 문자열 비교
    == 연산자는 두 객체의 참조가 같은지, 즉 두 객체가 메모리 상에서 같은 위치를 가리키고 있는지를 확인합니다. 이는 객체의 내용이 아닌, 객체가 저장된 메모리 주소를 비교합니다.
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를 반환합니다.

  • 정리
    equals()는 문자열의 내용을 비교하여 같으면 true, 다르면 false를 반환합니다. 대소문자를 구분합니다.
    equalsIgnoreCase()는 대소문자를 구분하지 않고 문자열의 내용을 비교합니다.
    == 연산자는 두 문자열 객체의 메모리 주소를 비교합니다. 내용이 같더라도 다른 객체라면 false를 반환합니다.
    이러한 차이점을 이해하는 것은 Java 프로그래밍에서 매우 중요합니다. 문자열을 비교할 때, 내용의 동등성을 확인하려면 equals()를 사용하고, 객체 참조의 동일성을 확인하려면 ==를 사용해야 합니다.

특수 문자

  • \n: 줄바꿈(New Line)
    이스케이프 문자 \n은 새로운 줄로 이동하는 효과를 가집니다. 예를 들어, "자바가\n너무\n재미있어요"에서 \n은 각 단어를 새로운 줄에 출력하도록 합니다.
  • \t: 탭(Tab)
    \t는 탭 키를 누른 것과 같은 공백을 만듭니다. 이는 텍스트를 일정한 간격으로 정렬할 때 유용합니다. 예시로 "해물파전\t9000원"에서 \t는 "해물파전"과 "9000원" 사이에 탭 크기의 공백을 삽입합니다.
  • \: 백슬래시(Backslash)
    백슬래시는 이스케이프 문자를 시작하는 특수문자입니다. 그 자체를 표현하려면 \를 사용해야 합니다. 예를 들어, "C:\program Files\Java"에서 \는 실제 경로에서 사용되는 단일 백슬래시를 나타냅니다.
  • \": 큰따옴표(Double Quote)
    문자열 내에서 큰따옴표를 표현하려면 \"를 사용합니다. 예를 들어, "단비가 \"냐용~\" 이라고 했어요."에서 큰따옴표는 문자열의 일부로 출력됩니다.
  • \': 작은따옴표(Single Quote)
    작은따옴표를 문자열 내부에서 표현하려면 \'를 사용합니다. 예를 들어, "단비가 \'뭘 바?\' 라는 표정을 지었어요."에서 작은따옴표는 문자열의 일부로 출력됩니다.

이스케이프 문자의 중요성

이스케이프 문자는 문자열 내에서 특수한 효과를 부여하거나, 보통의 텍스트로는 표현하기 어려운 문자를 표현하는 데 사용됩니다. 예를 들어, 줄바꿈이나 탭과 같은 공백 문자를 정확하게 표현하거나, 문자열 내에서 따옴표를 사용해야 할 때 매우 유용합니다.

Java와 같은 프로그래밍 언어에서 이스케이프 문자의 이해는 문자열을 더욱 효과적으로 다루는 데 필수적입니다. 이러한 문자들은 코드의 가독성을 높이고, 복잡한 문자열 형식을 간단하게 표현하는 데 도움을 줍니다.

참조 유튜브

profile
개발자를 꿈꾸는 과학도 취준생

0개의 댓글

관련 채용 정보