[Java] 아스키코드 / 유니코드 / 형변환 / print()

2021. 1. 12. 20:00Dev.Program/Java & Spring

728x90

======== Ex.java 만들기

p.66

 

ASCII 코드 - American Standard Code(미국 표준 문자 코드)

  • 7bit 로 구성 = 2^7 = 128 가지 문자 표현 가능(0 ~ 127 조합)
  • 10진수 형태로 표현

 

Unicode(유니코드)

  • 전 세계 모든 문자 표현
  • 2Byte(16bit) 로 구성 = 2^16 = 65536 가지 문자 표현 가능(0 ~ 65535)
  • 16진수로 표현
  • '\ 기호와 u 를 쓰고 뒤에 16진수 4자리(XXXX)를 붙여서 표현'

 

char 타입

  • 문자 1개를 표현하는 데이터타입
  • 유니코드 방식 사용
char ch1 = 'A'; // 일반적인 문자 표현법(작은따옴표 사이에 1개 문자 사용)
System.out.println(ch1);

char ch2 = 65; // 정수값을 사용한 문자 표현법(10진수 유니코드값 사용)
System.out.println(ch2);

char ch3 = '\u0041'; // 유니코드 표현법을 사용한 문자 표현법
System.out.println(ch3);

ch1, ch2, ch3 결과값이 ‘A’로 다 같음

우리는 일반적인 표현법을 사용할 것임.

ch1 = '\'';
System.out.println(ch1);

- 작은따옴표를 사용하여 작은따옴표 1개를 표현하려면 \' 형태로 사용

ch3 = '\uAC00';
System.out.println(ch3);

- 한글 "가"


 

p.69

 

String

  • 문자열을 표현하기 위한 데이터타입
  • 기본형이 아닌 참조형
  • 1개 이상의 문자열을 큰따옴표("")로 묶어서 표현
  • 아무것도 포함하지 않는 문자열("")을 널스트링(null string) 이라고 한다.
  • 덧셈 연산자를 활용하여 문자열 결합이 가능

작은 따옴표는 문제 없음.
큰 따옴표는 문제가 된다. (빨간 밑줄) > 쓰고 싶으면 백슬래시 추가해야됨.

 

백슬래시 추가하면 오류 없이 잘 출력됨!

 

p.69 참고

 

출력창

 

======== Ex2.java 만들기

p.70-71

< 형변환(Type Casting) >

  • 데이터타입 간의 변환이 일어나는 것
  • 기본형 끼리의 형변환과 참조형 끼리의 형변환으로 구분

1. 묵시적 형변환(= 암시적 형변환 = 자동 형변환)

  • 작은 데이터타입에서 큰 데이터타입으로 변환하는 경우 별도의 형변환 연산자를 사용하지 않아도 자동으로 변환됨
  • 따라서, 오류가 발생하지 않으며 원본 데이터 그대로 변환됨

2. 명시적 형변환(= 강제 형변환)

  • 큰 데이터타입에서 작은 데이터타입으로 변환하는 경우 반드시 형변환 연산자를 사용하여 우변의 데이터 앞에 작은 데이터타입명을 명시
  • 이 때, 강제 변환 과정에서 원본 데이터의 넘침(Overflow, 오버플로우)이 발생하여 원본 데이터가 아닌 다른 데이터가 저장될 수 있다.


<형변환 연산자 사용 문법>

(데이터타입)데이터;
  • 명시적 형변환의 경우 작은 데이터타입을 명시한다!

 

a1을 찍으면 데이터를 들고옴.
출력창 : 문자열 + 데이터 + 문자열 + 데이터
a1 = a2; 우변에서 좌변으로 저장.
출력창

 

System.out.println();

- 엔터키 역할을 수행하는 문장으로 사용됨

 

오류가 생김. 빨간 밑줄

  • b2 = b1; 오류 발생! Type mismatch: cannot convert from int to byte
  • int 타입(큰) 데이터를 byte 타입(작은) 변수에 저장하려 할 경우 큰 타입 데이터가 저장될 때 오버플로우가 발생할 우려가 있으므로 변환되지 않는다!

출력창(결과)

  • 오류는 안뜨지만 결과값을 보면 원본과 다른 값이 나옴.

byte &rarr; char 변환 시 형변환 연산자 필수!
형 변환 시 오류 사라짐!

 

======== Ex3.java 만들기

< print(), println(), printf() >

1. print() 와 println() 은 출력 후 줄바꿈 여부의 차이

  • ⇒ print() 메서드는 아무 데이터도 없으면 출력 불가능

2. printf()

  • 출력할 형식을 미리 지정하여 원하는 형태로 데이터 출력

(printf 메서드의 f 는 format 의 약자)

  • 출력할 형식은 "" 큰따옴표 안에 형식 지정문자를 사용하여 형식을 지정한 뒤 큰따옴표("") 우측에 콤마(,) 를 붙이고 실제 데이터를 지정

 

%d는 무조건 뒤에 데이터값을 넣어줘야됨.
출력창 : %d 랑 %xd 차이점
출력창 : \u는 유니코드

 

======== Test3.java 만들고 printf() 로 구구단 만들기

 

728x90