어제 오늘 내일

[Java] 큰 따옴표 출력하는 3가지 방법 본문

IT/Java

[Java] 큰 따옴표 출력하는 3가지 방법

hi.anna 2021. 4. 20. 08:25

Java에서 문자열(String)은 큰따옴표로 감싸서 표현합니다.

그렇다면, 큰따옴표가 문자열 안에 포함되도록 하려면 어떻게 해야 할까요?

Hello "World"

위 문자열을 출력해야 한다면, 이 문자열을 어떻게 표현해야 할까요?

String str = "Hello "World"";

위와 같이 표현해주면 될까요?

아마도, 위와 같이 문자열을 선언을 하면 컴파일 에러가 발생할 것입니다.

그래서 이번에는 문자열 안에서 쌍따옴표를 표현하는 3가지 방법을 알아보도록 하겠습니다.

 

 

1. 이스케이프(Escape) 문자 사용하기

 코드 

public class StringQuotes {
    public static void main(String[] args) {
        
        String str = "Hello \"World\"";

        System.out.println(str);
    }
}

 결과 

Hello "World"

문자열 안에서 큰따옴표를 표현하기 위해서 사용하는 가장 일반적인 방법입니다.

이스케이프(escape) 문자는

백슬래시(\)와 함께 쓰이면서, 자바에서 특별한 기능을 수행하게 됩니다.

위 예제에서는 문자열 안에서 큰따옴표를 표시하기 위해서

\" 이스케이프 문자가 사용되었습니다. 

이렇게 따옴표를 백슬래시(\)와 같이 사용하면,

이 따옴표는 문자열을 열거나 닫는 용도로 사용되지 않고,

문자열 안에 포함됩니다.

 

 

 

 

2. char 사용하기

 코드 

public class StringQuotes {
    public static void main(String[] args) {

        char quotes = '"';
        String str = "Hello " + quotes + "World" + quotes;

        System.out.println(str);
    }
}

 결과 

Hello "World"

문자열 안에서 큰따옴표를 표현하기 위해서 char를 사용하였습니다.

위 예제에서는,

큰따옴표를 char 타입으로 표현하고, 기존의 문자열에 이 char를 이어붙이는 방법을 사용하였습니다.

 

 

 

3. Unicode 사용하기

 코드 

public class StringQuotes {
    public static void main(String[] args) {

        char quotes = '\u0022';
        String str = "Hello " + quotes + "World" + quotes;

        System.out.println(str);
    }
}

 결과 

Hello "World"

마지막 방법으로, 

쌍따옴표를 표시하는 Unicode를 찾아서 직접 입력해 주었습니다.

'\u0022'는 쌍따옴표를 나타내는 Unicode 입니다.

이렇게 직접 Unicode를 입력해주면

쌍따옴표뿐만 아니라 어떠한 특수문자라도 문자열에 포함시키고 출력할 수 있습니다.

하지만, 이 방법은 나중에 이 코드를 해석하는데 어려움이 따르는 단점이 있습니다.

나중에 이 소스 코드를 다시 본다면, 

'\u0022'가 어떤 문자를 나타내는지 따로 찾아보아야만 코드 해석이 가능하겠죠?

그래서, 가능하다면 이렇게 유니코드를 직접 쓰는 것보다는 

이스케이프 문자를 사용하거나,

char에 쌍따옴표를 직접 입력해서 사용하는 방법을 추천합니다.

 


 

문자열에 쌍따옴표를 표현하는 3가지 방법을 알아보았습니다.

일반적으로 이스케이프 문자를 사용하는 방법을 가장 많이 사용합니다.

상황에 맞추어 가장 적절한 방법을 찾아서 사용하세요.

 

 

반응형
Comments