아래와 같이 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:\
'. Java의 정석' 카테고리의 다른 글
[Java] 정수형 데이터 타입 : 부호 비트와 값의 표현 (0) | 2021.07.05 |
---|---|
[Java] 문자 코드 : 아스키, 확장아스키, 코드페이지, 유니코드 (0) | 2021.07.05 |
[Java] 문자형 데이터 타입 char : 기본값, 16진수표현 (0) | 2021.07.04 |
[Java] 문자형 데이터 타입 char : 저장방식, 인코딩, 디코딩, 형변환, 연산 (0) | 2021.07.03 |
[Java] 논리형 데이터 타입 boolean (0) | 2021.07.03 |