| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- JSON
- Selection Sorting
- 이것이 자바다
- insertion sort
- 혼자 공부하는 C언어
- Graph
- 메모리구조
- 윤성우의 열혈 자료구조
- list 컬렉션
- C programming
- 윤성우 열혈자료구조
- datastructure
- buffer
- Algorithm
- Stack
- 이스케이프 문자
- stream
- Serialization
- R
- C 언어 코딩 도장
- 알기쉬운 알고리즘
- s
- coding test
- Today
- Total
Engineering Note
이스케이프 문자 본문
이스케이프 문자(Escape Character)란?
Java에서 문자열 안에서 또는 정규표현식에서 특별한 의미를 가진 문자나 제어 문자를 표현하기 위해 '\'(역슬래시)를 이용해 나타내는 방식. Java뿐 아니라 다른 언어에도 존재한다.
예를 들어 문자열안에서 쌍따옴표(")를 쓰고 싶으면 쌍따옴표앞에 역슬래시를 붙여준다.
ex) "나는 \"자바\"를 공부한다."
만약 역슬래시를 쓰지 않고 "나는 "자바"를 공부한다." 이렇게 사용한다면 "나는 " 이 하나의 문자열 처럼 인식되면서 문법 오류가 난다.
또 다른 예로 문자열 안에서 정규표현식의 진짜 마침표를 표현하고 싶다면, 여기서 진짜 마침표라고 한 이유는 정규표현식에서 마침표는 또다른 의미로 특수한 의미를 가지는 문자이기 때문(정규표현식에서 마침표(.)는 모든 문자를 의미) 그래서 진짜 문자 마침표(.)를 표현하기 위해서는 '\.' 이렇게 사용하는데, 이걸 다시 문자열 안에서 사용하려면 "\\."이렇게 표현해야 한다.
이건 문자열을 파싱할 때 자주쓰인다. 어떤 문자열이 마침표를 기준으로 특별한 의미가 있을 때, 파싱해서 값을 추출해야하는데, 그때 이스케이프 문자와 정규표현식을 같이 사용할 수 있다. JWT를 파싱할 때가 좋은 예이다.
JWT는 Header.Payload.Signature로 구성된 인코딩된 문자열인데, Header,Payload,Signature를 각각 추출하고 싶다면, 아래처럼 사용할 수 있다.
String[] parts = jwt.split("\\.");
자주 사용되는 이스케이프 문자 사용 정리
Java 문자열
\n(줄바꿈),
\t(탭),
\"(쌍따옴표),
\'(작은따옴표),
\\(역슬래시),
\b(백스페이스)
정규표현식
\. (모든 문자의미의 .아닌 문자 마침표)
\^ (문자열 시작 ^이 아닌 캐럿 문자 ^)
'Programming Language > Java' 카테고리의 다른 글
| [Java] Generic(제네릭) (0) | 2025.06.03 |
|---|---|
| [Java] Object 클래스 - 모든 클래스의 조상 (0) | 2025.03.30 |
| [Java] Polymorphism (1) | 2022.09.22 |
| [Java] 변수의 종류 (0) | 2022.09.15 |
| [Java] Inheritance (0) | 2022.09.09 |