[Java] String 클래스(대소문자 변환, 문자열비교_equals)

2022. 1. 10. 20:44·TIL/Java
728x90
반응형

일반적으로 인스턴스를 생성할 때는 이렇게 생성자를 통해서 만든다.

 

char data[] = {'a', 'b', 'c'};
String myString = new String(data);

 

abc

 

하지만 문자열의 경우에는 '문자열 리터럴(String Literal)'로 만들기 때문에 기본형이 아닌가 오해를 할 수도 있다.

 

String myString = "abc";

 

어쨌든 문자열도 클래스 기반의 자료형이기 때문에 여러 가지 메소드를 사용할 수 있다.

유용해보이는 몇 가지만 살펴보자!

 

대소문자 변환

toUpperCase 메소드를 이용하면 모든 글자를 대문자로, toLowerCase 메소드를 이용하면 모두 소문자로 변환할 수 있다.

 

String myString = "aBc";
System.out.println(myString.toUpperCase()) // 모두 대문자로
System.out.println(myString.toLowerCase()) // 모두 소문자로
System.out.println(myString)               // 그대로

 

ABC
abc
aBc

 

참고로 이 두 메소드는 myString 자체를 바꾸는 것이 아니라, 새로운 문자열을 리턴시켜주는 것이다. 따라서 마지막에 System.out.println(myString)을 하면 원래대로 "aBc"가 나온다.

 

문자열 비교

String myString = "aBc";
System.out.println(myString.toLowerCase() == "abc");

 

false

 

양쪽 다 "abc"이니까 true가 나올 것 같은데, 실행하면 false가 나온다.

기본형의 비교 연산자는 양쪽의 값이 같으면 true가 나오는데, 참조형의 비교 연산자는 가리키는 인스턴스가 같은 인스턴스인지 확인하는 역할을 한다. 위의 예시에서 두 인스턴스가 서로 다른 인스턴스이기 때문에 false가 나온다.

만약 두 문자열의 내용이 같은지 비교하려면 ==가 아니라 equals 메소드를 사용해야한다.

 

String myString = "aBc";
System.out.println(myString.toLowerCase().equals("abc"));

 

true

 

예전에 'DNA 염기 서열' 문제에서는 equals를 쓰지 않고 switch문에 넣었는데, 이건 왜 제대로 작동했을까? switch문 내부에서 == 대신 equals 메소드를 쓰고 있었기 때문이다.

 

728x90
반응형

'TIL > Java' 카테고리의 다른 글

[Java] Wrapper Class / Array List  (0) 2022.01.10
[Java] 숫자 도구(Math, Random)  (0) 2022.01.10
[Java] 단위 변환기  (0) 2022.01.08
[Java] 인스턴스 메소드 vs 클래스 메소드  (0) 2022.01.07
[Java] 인스턴스 변수 vs 클래스 변수  (0) 2022.01.07
'TIL/Java' 카테고리의 다른 글
  • [Java] Wrapper Class / Array List
  • [Java] 숫자 도구(Math, Random)
  • [Java] 단위 변환기
  • [Java] 인스턴스 메소드 vs 클래스 메소드
야리니
야리니
오늘보다 내일 더 성장하는 개발자가 되기 위한 야리니 블로그입니다 :)
    반응형
    250x250
  • 야리니
    야리니의 step by step
    야리니
  • 링크

    • GitHub
    • Linkedin
  • 전체
    오늘
    어제
    • 분류 전체보기 (477)
      • TIL (379)
        • Java (97)
        • Kotlin (28)
        • JPA (16)
        • Spring (37)
        • Oracle (22)
        • JDBC (7)
        • Web(HTML, CSS, JS, jQuery) (90)
        • View Template (31)
        • AWS (7)
        • HTTP (7)
        • CS (5)
        • Linux, Unix (2)
        • Python (20)
      • Trouble Shooting(Error) (37)
      • Algorithm (15)
      • Git,GitHub (8)
      • Diary (23)
      • 독서 (9)
      • Etc (6)
        • Mac (1)
        • 학원준비과정 (2)
  • 블로그 메뉴

    • 방명록
    • 태그
  • 공지사항

    • 안녕하세요 :)
  • 인기 글

  • 태그

    HTML
    Kotlin
    국비지원학원
    쌍용교육센터
    코틀린
    백엔드 개발자
    java기초
    java
    CSS
    oracle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
야리니
[Java] String 클래스(대소문자 변환, 문자열비교_equals)
상단으로

티스토리툴바