[Java] 문자열 .equals() / .charAt() / .length() / .replace() / .substring() / .indexOf() / .contains() / .split()

2024. 2. 26. 15:55· IT/Java
목차
  1. 문자열(String)
  2. 문자열 비교
  3. charAt()
  4. length()
  5. replace()
  6. substring()
  7. 문자열 찾기
  8. split()
728x90

문자열(String)

자바의 문자열은 String 객체로 생성된다.

String name;
name = "이름";
String hobby = "취미";

변수에 문자열 리터럴이 대입되면 문자열은 String 객체로 생성되고, 객체의 번지가 각각 대입된다.

  1. String 타입 name 변수 선언
  2. name 변수에 문자열 대입
  3. String 타입 변수 hobby 선언 후 문자열 대입

 

 

문자열 비교

String name1 = "이름";
String name2 = "이름";

자바는 문자열 리터럴이 동일하다면 String 객체를 공유한다.

 

String name1 = new String("이름");
String name2 = new String("이름");

new 연산자로 직접 String 객체를 생성하고 대입할 수 있다. new 연산자는 새로운 객체를 만드는 연산자로 객체 생성 연산자라고 한다.

new 연산자로 대입할 경우 두 변수는 같은 객체를 공유하지 않고 각각 서로 다른 객체의 번지를 가진다.

 

문자열 리터럴로 생성하느냐 new 연산자로 생성하느냐에 따라 비교 연산자의 결과가 달라진다.

String name1 = "이름";
String name2 = "이름";
String name3 = new String("이름");

name1 == name2 // true
name1 == name3 // false

name1과 name2는 동일한 문자열 리터럴로 생성된 객체를 참조하여 true, name3은 new 연산자로 String 객체를 별도 생성하여 false 결과가 나온다.

 

내부 문자열만 비교할 경우 String 객체의 equals() 메소드를 사용한다.

boolean result = str1.equals(str2);

예제 코드

더보기
    public static void main(String[] args) {
        String strVal1 = "이름";
        String strVal2 = "이름";

        if (strVal1 == strVal2) {
            System.out.println("strVal1과 strVal2는 참조가 같음 ");
        } else {
            System.out.println("strVal1과 strVal2는 참조가 다름 ");
        }

        if (strVal1.equals(strVal2)) {
            System.out.println("strVal1과 strVal2는 문자열이 같음 ");
        }

        String strVal3 = new String("이름");
        String strVal4 = new String("이름");

        if (strVal3 == strVal4) {
            System.out.println("strVal3과 strVal4는 참조가 같음 ");
        } else {
            System.out.println("strVal3과 strVal4는 참조가 다름 ");
        }

        if (strVal3.equals(strVal4)) {
            System.out.println("strVal1과 strVal2는 문자열이 같음 ");
        }
    }

String 변수에 빈 문자열(" ")을 대입할 수 있으며, String 객체로 생성되기 때문에 변수가 빈 문자열을 참조하는지 확인하려면 equals 메소드를 사용하여 확인한다.

예제 코드

더보기
public static void main(String[] args) {
        String name = "";
        if (name.equals("")) {
            System.out.println("name 변수가 참조하는 String 객체는 빈 문자열");
        }
    }

 

 

 

charAt()

문자열에서 특정 위치의 문자를 얻고 싶을 때 매개값으로 주어진 인덱스의 문자를 리턴한다.

String subject = "자바 프로그래밍";
char charValue = subject.charAt(3); // 프

예제 코드

더보기
    public static void main(String[] args) {
        String ssn = "9902021230123";
        char sex = ssn.charAt(6);
        System.out.println("sex = " + sex);
        if (sex == '1' || sex == '3') {
            System.out.println("남자");
        } else {
            System.out.println("여자");
        }
    }

 

 

 

length()

문자열에서 문자의 개수를 얻고 싶을 때 사용한다.

예제 코드

public static void main(String[] args) {
        String ssn = "9901081230123";
        int length = ssn.length();
        if (length == 13) {
            System.out.println("주민등록번호 자릿수가 맞습니다.");
        } else {
            System.out.println("주민등록번호 자릿수가 틀립니다.");
        }
    }

 

 

replace()

특정 문자열을 다른 문자열로 대체할 때 사용한다. replace() 메소드는 기존 문자열은 그대로 두고, 대체한 새로운 문자열을 반환한다.

String oldStr = "자바 프로그래밍";
String newStr = oldStr.replace("자바", "JAVA");

String 객체의 문자열은 변경이 불가한 특성을 갖기 때문에 replace() 메소드가 리턴하는 문자열은 원래 문자열의 수정본이 아니라 완전히 새로운 문자열이다. 

예제 코드

더보기
    public static void main(String[] args) {
        String oldStr = "자바 문자열은 불변입니다. 자바 문자열은 String입니다.";
        String newStr = oldStr.replace("자바", "Java");

        System.out.println("oldStr = " + oldStr);
        System.out.println("newStr = " + newStr);

        String testStr = "테스트 입니다. 테스트라구요.";
        testStr = testStr.replace("테스트", "test");
        System.out.println("testStr = " + testStr);
    }

 

 

 

substring()

문자열에서 특정 위치의 문자열을 잘라내어 가져올 때 사용한다.

메소드 설명
substring(int beginIndex) beginIndex에서 끝까지 잘라내기
substring(int beginIndex, int endIndex) beginIndex에서 endIndex 앞까지 잘라내기
    public static void main(String[] args) {
        String ssn = "990108-1234567";
        String first = ssn.substring(0, 6);
        String second = ssn.substring(7);
        System.out.println("first = " + first); // 990108
        System.out.println("second = " + second); // 1234567
    }

 

 

문자열 찾기

indexOf()

문자열에서 특정 문자열의 위치를 찾을 때 사용한다.

String subject = "자바 프로그래밍";
int index = subject.indexOf("프로그래밍"); // 3

indexOf() 메소드는 주어진 문자열이 시작되는 인덱스를 리턴하며, 만약 주어진 문자열이 포함되어 있지 않으면 -1을 리턴한다.

 

contains()

주어진 문자열이 단순히 포함되어 있는지만 확인할 때 사용한다.

boolean result = subject.contains("프로그래밍");

원하는 문자열이 포함되어 있으면 contains() 메소드는 true를 리턴하고, 아니면 false를 리턴한다.

예제 코드

더보기
    public static void main(String[] args) {
        String subject = "자바 프로그래밍";

        int location = subject.indexOf("프로그래밍");
        System.out.println("location = " + location);

        String substring = subject.substring(location);
        System.out.println("substring = " + substring);

        location = subject.indexOf("자바");
        if (location != -1) {
            System.out.println("자바 단어 포함");
        } else {
            System.out.println("자바 단어 미포함");
        }

        boolean result = subject.contains("자바");
        if (result) {
            System.out.println("자바 포함");
        } else {
            System.out.println("자바 미포함");
        }

    }

 

 

split()

문자열을 따로 분리해서 얻고 싶을 때 사용한다.

String board = "번호,제목,내용,성명";
String[] arr = board.split(",");

예제 코드

더보기
    public static void main(String[] args) {
        String board = "1,자바 학습,참조 타입 String을 학습함.,이름";

        String[] tokens = board.split(",");

        System.out.println("번호 : " + tokens[0]);
        System.out.println("제목 : " + tokens[1]);
        System.out.println("내용 : " + tokens[2]);
        System.out.println("성명 : " + tokens[3]);
        System.out.println();

        //  for 이용
        for (int i = 0; i < tokens.length; i++) {
            System.out.println(tokens[i]);
        }
    }
728x90
저작자표시 (새창열림)

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

[Java] 다차원 배열  (0) 2024.02.27
[Java] 배열(Array)  (0) 2024.02.27
[Java] null / NullPointerException  (0) 2024.02.26
[Java] 참조 타입 변수 ==, != 연산  (0) 2024.02.26
[Java] 참조 타입  (0) 2024.02.26
  1. 문자열(String)
  2. 문자열 비교
  3. charAt()
  4. length()
  5. replace()
  6. substring()
  7. 문자열 찾기
  8. split()
'IT/Java' 카테고리의 다른 글
  • [Java] 다차원 배열
  • [Java] 배열(Array)
  • [Java] null / NullPointerException
  • [Java] 참조 타입 변수 ==, != 연산
Huitopia
Huitopia
Huitopia
summary
Huitopia
  • 분류 전체보기 (170)
    • IT (156)
      • Java (72)
      • JavaScript (11)
      • TypeScript (4)
      • Node.js (7)
      • Front (10)
      • Database (2)
      • Algorithm (28)
      • etc. (22)
    • Bootcamp (14)
      • WIL (14)

블로그 메뉴

  • GitHub
  • TIL

공지사항

인기 글

태그

  • 모던자바스크립트
  • 연산자
  • 인터페이스
  • Java
  • 웹개발종합반
  • 자동타입변환
  • css
  • array
  • python
  • 자바
  • 타입변환
  • HTML
  • wil
  • 강제타입변환
  • 항해99
  • 회고록
  • jQuery
  • TypeScript
  • programmers
  • WEB
  • javascript
  • 클래스
  • CLASS
  • Method
  • node.js
  • 상속
  • Interface
  • CodingTest
  • Spring
  • 스파르타코딩클럽

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Huitopia
[Java] 문자열 .equals() / .charAt() / .length() / .replace() / .substring() / .indexOf() / .contains() / .split()
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.