Java/๋ฌธ๋ฒ•

[Java ๋ฌธ๋ฒ• ์ด์ •๋ฆฌ] ๋ฌธ์ž์—ด ↔ ์ˆซ์ž ํ˜•๋ณ€ํ™˜ / int ↔ char

soowitty 2024. 1. 27. 01:21
๐Ÿ’ก ๋Œ€๋ถ€๋ถ„์˜ ๋‚ด์šฉ์„ ์ ํ”„ ํˆฌ ์ž๋ฐ” ์—์„œ ์ฐธ๊ณ ํ•˜์—ฌ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ˜•๋ณ€ํ™˜ (๋ฌธ์ž์—ด ↔ ์ˆซ์ž)


๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ

Integer.parseInt()

String str = "100";
int i = Integer.parseInt(str);
Long i = Integer.parseLong(str);
  • intํ˜• ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ byte, short, long, float, double ๋“ฑ ์ˆซ์ž ๊ด€๋ จ ํƒ€์ž…์€ ์ „๋ถ€ ๊ฐ€๋Šฅํ•จ. pareseByte(), parseShort() …

Integer๋Š” int ์ž๋ฃŒํ˜•์˜ Wrapper ํด๋ž˜์Šค์ด๋‹ค.

 

์ž๋ฐ”์˜ ์ž๋ฃŒํ˜•์€ ํฌ๊ฒŒ ๊ธฐ๋ณธ ํƒ€์ž…(primitive type)๊ณผ ์ฐธ์กฐ ํƒ€์ž…(reference type)์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ง„๋‹ค.

๊ธฐ๋ณธ ํƒ€์ž… - int, char, double ๋“ฑ

  • ์ฐธ์กฐ ํƒ€์ž… - class, interface ๋“ฑ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋‹ค. ์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๋“ค์„ ๋ž˜ํผ ํด๋ž˜์Šค(wrapper class)๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ๊ธฐ๋ณธ ํƒ€์ž…์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๊ฐ€ wrapper class!


๊ธฐ๋ณธ ํƒ€์ž… (primitive type)  wrapper class
int Integer
byte Byte
double Double
float Float

 

Integer.valueOf()

String str = "100";
int i = Integer.valueOf(str);

 

Integer.parseInt() vs. Integer.valueOf()

  • Integer.parseInt()๋Š” ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ธ int ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • Integer.valueOf()๋Š” ๋ฌธ์ž์—ด ๊ฐ’์„ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค์— ์ฐธ์กฐ ์ž๋ฃŒํ˜•์ธ Integer ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ

์ •์ˆ˜ ์•ž์— ๋นˆ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ

int i = 100;
String str = "" + i;

String.valueOf()

int i = 100;
String str = String.valueOf(i);

Integer.toString()

int i = 100;
String str = Integer.toString(i);

 

 

int ↔ char


char๋ฅผ int๋กœ

char๋ฅผ int๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ๋Š” (int) ๋‚˜ Integer.parseInt, Integer.valueOf๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’์ด ์ถœ๋ ฅ๋˜์–ด ์›ํ•˜๋Š” ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค.

char c = '1';
int n1 = (int)c;
int n2 = Integer.parseInt(c);
int n3 = Integer.valueOf(c);

System.out.println(n1); // ๊ฒฐ๊ณผ: 49
System.out.println(n2); // ๊ฒฐ๊ณผ: 49
System.out.println(n3); // ๊ฒฐ๊ณผ: 49

 

ASCII code ์‚ฌ์šฉํ•˜๊ธฐ

char c = '1';
int n = c - '0';

System.out.println(n); // ๊ฒฐ๊ณผ: 1

์•„์Šคํ‚ค ์ฝ”๋“œ ํ‘œ์—์„œ, ๋ฌธ์ž 0 ~ 9๋Š” 48 ~ 57์˜ ์ˆœ์„œ๋กœ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฌธ์ž '1'์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ์—์„œ ๋ฌธ์ž '0'์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ๋ฅผ ๋นผ์ฃผ๋ฉด ์›ํ•˜๋Š” ์ˆซ์ž 1์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

char๋ฅผ int๋กœ

int๋ฅผ char๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ์™€ ๊ฐ™์ด ASCII code๋ฅผ ์ด์šฉํ•ด์•ผ ์›ํ•˜๋Š” ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

int i = 1;

char ch = (char)(i +'0');