아래와 같이 char 또는 String 타입 변수에 특수문자도 저장이 가능하다.

char sCh1 = '*';		// 키보드 상의 특수 문자
char sCh2 = '#';
char sCh3 = '★';		// 자음+한자key 특수 문자
char sCh4 = '㉠';
String sCh5 = "ʕ•ᴥ•ʔ";		// 유니코드 특수문자
String sCh6 = "(。•́︿•̀。)";
System.out.println(sCh1);
System.out.println(sCh2);
System.out.println(sCh3);
System.out.println(sCh4);
System.out.println(sCh5);
System.out.println(sCh6);

[실행결과]
*
#
★
㉠
ʕ•ᴥ•ʔ
(。•́︿•̀。)

 

Java에서 문자를 나타내기 위해 작은따옴표를,

문자열을 나타내기 위해 큰따옴표를 사용한다.

그렇기 때문에 char 타입 변수에 작은따옴표를 저장하려고 하면 에러가 난다.

char sCh7 = ''';	// 에러 : Invalid character constant
char sCh7 = '"';

위 예제에서는 큰따옴표는 저장이 가능하지만

System.out.println();에서 사용할 때는 에러가 난다.

System.out.println("만날 때도 '안녕'");
System.out.println("헤어질 때도 "안녕"");	// 에러 : Multiple markers at this line

[실행결과]
만날 때도 '안녕'

위 예제에서는 안녕이라는 단어를 강조하기 위해

첫 문장에서는 작은따옴표를 사용했고

두 번째 문장에서는 큰따옴표를 사용했다.

 

작은따옴표를 사용한 문장은 에러 없이 잘 출력되지만

큰따옴표를 사용한 문장은 컴파일 에러가 발생한다.

 

 

Java에서 문법적으로 사용되는 몇 개의 특수기호를 저장하려면

특수기호 앞에 역슬래쉬를 붙여야 한다.

char sCh9 = '\'';
System.out.println("헤어질 때도 \"안녕\"");

 

작은따옴표와 큰따옴표 외에도

역슬래쉬, tab 등의 특수문자를 저장할 때도 마찬가지이다.

 

 

 

키보드에서 바로 입력이 가능한 특수문자는 

`~!@#$%^&*()-_=+\|[{]};:'",<.> /? 

총 32개이다.

 

위 32개의 문자들을 복사해서

System.out.println();의 괄호 안에 붙여 넣어주면

아래와 같이 역슬래쉬와 큰따옴표 앞에

역슬래쉬를 자동으로 붙여준다.

System.out.println("`~!@#$%^&*()-_=+\\|[{]};:'\",<.> /?");
//                                   ↑        ↑

[출력결과]
`~!@#$%^&*()-_=+\|[{]};:'",<.>/?

System.out.println();의 괄호 안에

입력된 특수문자는 총 34개이지만,

출력 결과는 32개이다.

 

 

 

<예제 2-8 SpecialCharEx>

class P057_SpecialCharEx {
	public static void main(String[] args) {
		System.out.println('\'');		// '''처럼 할 수 없다.
		System.out.println("abc\t123\b456");	// \b에 의해 3이 지워진다.
		System.out.println('\n');		// 개행(new line)문자 출력하고 개행
		System.out.println("\"Hello\"");	// 큰따옴표를 출력하려면 이렇게 한다.
		System.out.println("c:\\");
	}
}

[실행결과]
'
abc	123456	[3이 지워지지 않고 Console상으로는 특수기호가 생긴다.]
		[\n에 의해 개행되고]
		[println에 의해 한번 더 개행됨]
"Hello"
c:\