이 영역을 누르면 첫 페이지로 이동
codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

페이지 맨 위로 올라가기

codesche's blog

[자료구조]문자열

  • 2023.01.02 19:50
  • 알고리즘 지식/자료구조

 

안녕하세요. codesche입니다. 오늘은 알고리즘 문제에서 빈번하게 활용되는 문자열 로직을 정리해보고자 합니다. 사실 알고리즘 문제 풀다보면 풀리는 문제보다 안 풀리는 문제가 훨씬 많은데 그 과정에서 개념활용에 익숙지 않아서 고민하는 경우가 상당히 많이 발생합니다. 30분, 1시간을 생각해도 많게는 2~3시간을 머리 싸매고 고민하지만 문제가 쉽게 풀리지 않는 경우가 있는데, 조금이라도 고민하는 시간을 줄여보고자 문제풀이에 필요한 개념과 소스 로직들을 정리해봤습니다. 필요하실 때 참고하시면 좋을 듯 합니다.

 

1. 문자열

1) equals()

문자열의 내용을 비교합니다.

 

 

2) equalsIgnoreCase

문자열의 특징을 무시하고 비교하는 것. 소문자, 대문자를 동일하게 인식합니다.

 

 

3) compareTo() 메소드

문자열의 길이를 비교해 정수를 반환해줍니다.

같으면 0

크면 1

작으면 -1

 

4) equalsIgnoreCase

문자열 비교시 해당 문자열의 대소문자 구분없이 비교를 할 때 사용합니다.

 

5) indexOf(String), indexOf(String, int)

특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며 찾지 못한 경우 "-1"을 반환합니다.

 

.indexOf("찾을 특정 문자",  "시작할 위치") 이런식으로 사용해주면 됩니다.

시작할 위치는 생략이 가능하며 생략할 경우 0번째 즉 처음부터 찾기 시작합니다.

 

6) replace

자신이 바꾸고 싶은 문자로 문자열을 치환시켜줍니다.

 

7) replaceAll

자신이 바꾸고 싶은 문자로 문자열을 전부 치환시켜줍니다.

 

**참고 - replace vs replaceAll

replace는 첫번째 값으로 바꿀 문자열을 입력받지만 첫번째 인자값으로 정규식이 들어갑니다. 

replace는 특수문자로 치환이 가능하지만 replaceAll은 특수문자 치환이 안 됩니다.

 

 

8) substring

문자열을 자를 때 주로 사용합니다.

String substring(int startIndex); 

String substring(int startIndex, int endIndex)

여기서 startIndex는 시작점의 인덱스 값이고, endIndex는 종료점의 인덱스 값입니다.

(String substring(int startIndex);  => 종료점이 생략되면 문자열 끝까지 출력)

'알고리즘 지식 > 자료구조' 카테고리의 다른 글

배열(Array)  (1) 2024.06.17
[자료구조]Map 인터페이스  (0) 2023.01.11
[자료구조]버블 정렬  (0) 2022.12.30
[자료구조]원형 큐  (0) 2022.12.27
[자료구조]슬라이딩 윈도우 With 투 포인터  (0) 2022.12.26

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 배열(Array)

    배열(Array)

    2024.06.17
  • [자료구조]Map 인터페이스

    [자료구조]Map 인터페이스

    2023.01.11
  • [자료구조]버블 정렬

    [자료구조]버블 정렬

    2022.12.30
  • [자료구조]원형 큐

    [자료구조]원형 큐

    2022.12.27
다른 글 더 둘러보기

정보

codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

  • codesche's blog의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (76)
    • Algorithm (15)
      • 백준 (3)
      • 프로그래머스 (10)
      • inflearn 알고리즘(Java) (2)
    • 블로그소개 (1)
    • Back-End (11)
      • Java (10)
      • SpringBoot (1)
    • Database (2)
      • MySQL (0)
      • MariaDB (1)
      • Redis (0)
      • 개념, 이론 (1)
    • Front-End (0)
      • html, css, javascript (0)
    • Git (2)
    • 알고리즘 지식 (11)
      • 자료구조 (11)
    • Study Cafe (21)
      • 기술면접 (6)
      • Clean Code 스터디 (14)
      • CS 스터디 (0)
      • 개발용어 (1)
    • 주간 에세이 (10)
    • DevOps (3)
      • 배포, Front&Back 연동 (1)
      • AWS (0)
      • Docker (1)
      • 이론 (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 자바 변수
  • 클린코드
  • 주간에세이
  • 자바 기초
  • 개발자 현실
  • git commit
  • java
  • 자료구조

나의 외부 링크

정보

The Code의 codesche's blog

codesche's blog

The Code

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © The Code. Designed by Fraccino.

티스토리툴바