[JAVA] 15. String ํด๋ž˜์Šค, StringBuffer, StringBuilder, Math ํด๋ž˜์Šค, Wrapper ํด๋ž˜์Šค, ์˜คํ† ๋ฐ•์‹ฑ&์–ธ๋ฐ•์‹ฑ, ์œ ์šฉํ•œ ํด๋ž˜์Šค

2022. 5. 6. 17:03ใ†JAVA/์ž๋ฐ”์˜ ์ •์„

728x90

 

https://hyejin.tistory.com/575

 

[JAVA] 14. Object ํด๋ž˜์Šค, String ํด๋ž˜์Šค

1๏ธโƒฃ Object ํด๋ž˜์Šค Object ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ๊ณ  ์กฐ์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์— Object ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋“ค์€ ๋ชจ๋“  ํด๋ž˜์Šค์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. protected Object clone() ๊ฐ์ฒด ์ž์‹ ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. public b

hyejin.tistory.com

 

- join() ๊ณผ StringJoiner

join์€ ์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด ์‚ฌ์ด์— ๊ตฌ๋ถ„์ž๋ฅผ ๋„ฃ์–ด์„œ ๊ฒฐํ•ฉํ•œ๋‹ค. (๊ตฌ๋ถ„์ž๋กœ ๋ฌธ์ž์—ด์„ ์ž๋ฅด๋Š” split๊ณผ ๋ฐ˜๋Œ€๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.)

dob-cat-bear

 

- ๋ฌธ์ž ์ธ์ฝ”๋”ฉ  ๋ณ€ํ™˜

getBytes(String s) ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ ๋‹ค๋ฅธ ์ธ์ฝ”๋”ฉ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

byte utf8_str = "๊ฐ€".getBytes("UTF-8");

String str = new String(utf8_str, "UTF-8");

 

์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋Š” ์ ์ ˆํ•œ ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์ด ํ•„์š”ํ•˜๋‹ค. 

 

 

- ๊ธฐ๋ณธํ˜• ๊ฐ’์„ String์œผ๋กœ ๋ณ€ํ™˜

์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ, ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 

์ด๋ฏธ ๋ฐฐ์šด ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ธฐ๋ณธํ˜•์„ ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ˆซ์ž์— ""(๋นˆ ๋ฌธ์ž์—ด)์„ ๋”ํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

์ด ์™ธ์—๋„ valueOf()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค, 

์„ฑ๋Šฅ์€ valueOf()๊ฐ€ ๋” ์ข‹์ง€๋งŒ ๋นˆ ๋ฌธ์ž์—ด์„ ๋”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋” ๊ฐ„๋‹จํ•˜๊ณ  ํŽธ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅํ–ฅ์ƒ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ valueOf()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 

 

 

- String ์„ ๊ธฐ๋ณธํ˜•์œผ๋กœ ๋ณ€ํ™˜

๋ฐ˜๋Œ€๋กœ String์„ ๊ธฐ๋ณธํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” valueOf() ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์•ž์„œ ๋ฐฐ์šด parseInt๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 

์›๋ž˜ valueOf()์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์€ int ๊ฐ€ ์•„๋‹ˆ๋ผ Integer์ธ๋ฐ ์˜คํ† ๋ฐ•์‹ฑ์— ์˜ํ•ด์„œ Interger๊ฐ€ int๋กœ ์ž๋™ ๋ณ€ํ™˜๋œ๋‹ค. 

 

์˜ˆ์ „์—๋Š” parseInt์™€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŽ์ด ์ผ๋Š”๋ฐ, ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์„ ํ†ต์ผํ•˜๊ธฐ ์œ„ํ•ด valueOf()๊ฐ€ ๋‚˜์ค‘์— ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. 

-> Boolean, Byte ์™€ ๊ฐ™์ด ๊ธฐ๋ณธํ˜„ ํƒ€์ž…์˜ ์ด๋ฆ„์˜ ์ฒซ ๊ธ€์ž๊ฐ€ ๋Œ€๋ฌธ์ž์ธ ๊ฒƒ์€ ๋ž˜ํผ ํด๋ž˜์Šค์ด๋‹ค. 

๊ธฐ๋ณธํ˜• ๊ฐ’์„ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค๋ผ๋Š” ๋œป์—์„œ ๋ถ™์—ฌ์ง„ ์ด๋ฆ„์œผ๋กœ ๊ธฐ๋ณธํ˜•์˜ ํด๋ž˜์Šค๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. 

sum = 300.0, sum2 = 300.0

 

 

1๏ธโƒฃ StringBuffer ํด๋ž˜์Šค์™€ StringBuilder ํด๋ž˜์Šค 

String ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ง€์ •๋œ ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ StringBufferํด๋ž˜์Šค๋Š” ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

๋‚ด๋ถ€์ ์œผ๋กœ ๋ฌธ์ž์—ด ํŽธ์ง‘์„ ์œ„ํ•œ ๋ฒ„ํผbuffer๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, StringBuffer์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ทธ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ด๋•Œ, ํŽธ์ง‘ํ•  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋ฒ„ํผ์˜ ๊ธธ์ด๋ฅผ ์ถฉ๋ถ„ํžˆ ์žก์•„์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ํŽธ์ง‘ ์ค‘์ธ ๋ฌธ์ž์—ด์ด ๋ฒ„ํผ์˜ ๊ธธ์ด๋ฅผ ๋„˜์–ด์„œ๊ฒŒ ๋˜๋ฉด ๋ฒ„ํผ์˜ ๊ธธ์ด๋ฅผ ๋Š˜๋ ค์ค€๋Š ์ž‘์—…์ด ์ถ”๊ฐ€๋กœ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—… ํšจ์œจ์ด ๋–จ์–ด์ง„๋‹ค. 

 

StringBufferํด๋ž˜์Šค๋„ String ํด๋ž˜์Šค์™€ ๊ฐ™์ด ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ charํ˜• ๋ฐฐ์—ด์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•ด ๋†“๊ณ  ์žˆ๋‹ค. 

 

- StringBuffer์˜ ์ƒ์„ฑ์ž

StringBuffer ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ์ ์ ˆํ•œ ๊ธธ์ด์˜ charํ˜• ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋˜๊ณ , ์ด ๋ฐฐ์—ด์€ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ  ํŽธ์ง‘ํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„buffer๋กœ ์‚ฌ์šฉ๋œ๋‹ค. 

StringBuffer ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ถฉ๋ถ„ํžˆ ์—ฌ์œ ์žˆ๋Š” ํฌ๊ธฐ๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

StringBuffer ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด 16๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์˜ ๋ฒ„ํผ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

 

- StringBuffer์˜ ๋ณ€๊ฒฝ 

String๊ณผ ๋‹ฌ๋ฆฌ StringBuffer๋Š” ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

- StringBuffer์˜ ๋น„๊ต

String ํด๋ž˜์Šค์—์„œ๋Š” equals ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด์„œ ๋ฌธ์ž์—ด์˜ ๋‚ด์š”์„ ๋น„๊ตํ•˜๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€๋งŒ, StringBuffer ํด๋ž˜์Šค๋Š” equals ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์ง€ ์•Š์•„์„œ StringBuffer ํด๋ž˜์Šค์˜ equals ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋“ฑ๊ฐ€๋น„๊ต์—ฐ์‚ฐ์ž๋ฅผ ๋น„๊ตํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. 

 

๊ทผ๋ฐ toString()์€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ๋˜์–ด ์žˆ์–ด์„œ StringBuffer ์ธ์Šคํ„ด์Šค์— toString()์„ ํ˜ธ์ถœํ•˜๋ฉด, ๋‹ด๊ณ  ์žˆ๋Š” ๋ฌธ์ž์—ด์„ String์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

๊ทธ๋ž˜์„œ StringBuffer ์ธ์Šคํ„ด์Šค์— ๋‹ด๊ธด ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” StringBuffer์ธ์Šคํ„ด์Šค์— toString()์„ ํ˜ธ์ถœํ•ด์„œ String์ธ์Šคํ„ด์Šค๋ฅผ ์–ป์€ ๋‹ค์Œ ์—ฌ๊ธฐ์— equals ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค. 

 

- StringBuffer ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž์™€ ๋ฉ”์„œ๋“œ

 

 

 

- StringBuilder ํด๋ž˜์Šค

StringBuffer ๋Š” ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ์— ์•ˆ์ „ (Thread safe)ํ•˜๋„๋ก ๋™๊ธฐํ™”๋˜์–ด ์žˆ๋‹ค. (๋™๊ธฐํ™”๊ฐ€ StringBuffer ์˜ ์„ฑ๋Šฅ์„ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค.)

๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹Œ ๊ฒฝ์šฐ, StringBuffer์˜ ๋™๊ธฐํ™”๋Š” ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์„ฑ๋Šฅ๋งŒ ๋–จ์–ด๋œจ๋ฆฌ๊ฒŒ ๋œ๋‹ค. 

 

๊ทธ๋ž˜์„œ StringBuffer์—์„œ ์“ฐ๋ ˆ๋“œ์˜ ๋™๊ธฐํ™”๋งŒ ๋บ€ StringBuilder ๊ฐ€ ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

StirngBuilder๋Š” StringBuffer์™€ ์™„์ „ํžˆ ๋˜‘๊ฐ™์€ ๊ธฐ๋Šฅ์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์–ด์„œ, ์†Œ์Šค์ฝ”๋“œ์— StringBuffer ๋Œ€์‹ ์— StringBuilder๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. 

 

StringBuffer๋„ ์ถฉ๋ถ„ํžˆ ์„ฑ๋Šฅ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅํ–ฅ์ƒ์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๊ธฐ์กด์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ์—์„œ StringBuffer๋ฅผ StringBuilder๋กœ ๊ตณ์ด ๋ฐ”๊ฟ€ ํ•„์š”๋Š” ์—†๋‹ค.

 

 

2๏ธโƒฃ Math ํด๋ž˜์Šค 

 Math ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ์ ์ธ ์ˆ˜ํ•™๊ณ„์‚ฐ์— ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. 

 

- Math ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ

- > rint๋Š” ์ง์ˆ˜๋ฐ˜์˜ฌ๋ฆผ์œผ๋กœ 1.5๋Š” 2.0์œผ๋กœ 2.5๋Š” 2.0์œผ๋กœ ์ด๋Ÿฐ์‹์œผ๋กœ ์ง์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผ ๋˜๋Š” ๋ฐ˜๋‚ด๋ฆผํ•ด์„œ ์ง์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

 

 

3๏ธโƒฃ ๋ž˜ํผ(Wrapper) ํด๋ž˜์Šค

๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…์—์„œ ๋ชจ๋“  ๊ฒƒ์€ ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผํ•˜๋Š”๋ฐ ์ž๋ฐ”์—์„œ๋Š” 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋ฐ ์ด์œ ๋Š” ๋†’์€ ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

๋•Œ๋กœ๋Š” ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋„ ์–ด์ฉ” ์ˆ˜ ์—†์ด ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 

ex) ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ์ฒด๋ฅผ ์š”๊ตฌํ•  ๋•Œ, ๊ธฐ๋ณธํ˜• ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด๋กœ ์ €์žฅํ•ด์•ผํ•  ๋•Œ, ๊ฐ์ฒด๊ฐ„์˜ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋“ฑ๋“ฑ์˜ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ๋ณธํ˜• ๊ฐ’๋“ค์„ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค. 

 

์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ๋ž˜ํผwrapper ํด๋ž˜์Šค์ด๋‹ค. 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์„ ๋Œ€ํ‘œํ•˜๋Š” 8๊ฐœ์˜ ๋ž˜ํผํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ํด๋ž˜์Šค๋“ค์„ ์ด์šฉํ•˜๋ฉด ๊ธฐ๋ณธํ˜• ๊ฐ’์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค. 

 

-> ๋ž˜ํผ ํด๋ž˜์Šค๋“ค์€ ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ์— ์ƒ์„ฑ์ž์˜ ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ๊ฐ ์ž๋ฃŒํ˜•์— ์•Œ๋งž์€ ๊ฐ’์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด์— ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋‹ค. 



-> ๋ž˜ํผ ํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ equals()๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ๋˜์–ด ์žˆ์–ด์„œ ์ฃผ์†Œ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. 

 

 

4๏ธโƒฃ Number ํด๋ž˜์Šค : ๋ชจ๋“  ์ˆซ์ž ๋ž˜ํผ ํด๋ž˜์Šค๋“ค์˜ ์กฐ์ƒ 

์ด ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ ์ˆซ์ž๋ฅผ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋กœ ๊ฐ–๋Š” ๋ž˜ํผ ํด๋ž˜์Šค๋“ค์˜ ์กฐ์ƒ์ด๋‹ค. 

-> ๊ธฐ๋ณธํ˜• ์ค‘์— ์ˆซ์ž์™€ ๊ด€๋ จ๋œ ๋ž˜ํผ ํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ Number ํด๋ž˜์Šค์˜ ์ž์†์ด๋‹ค. 

BigInteger๋Š” long์œผ๋กœ๋„ ๋‹ค๋ฃฐ ์ˆ˜ ์—†๋Š” ํฐ ๋ฒ”์œ„์˜ ์ •์ˆ˜๋ฅผ, BigDecimal์€ double๋กœ๋„ ๋‹ค๋ฃฐ ์ˆ˜ ์—†๋Š” ํฐ ๋ฒ”์œ„์˜ ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ์—ฐ์‚ฐ์ž์˜ ์—ญํ• ์„ ๋Œ€์‹ ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 

 

-> Number ํด๋ž˜์Šค์˜ ์‹ค์ œ ์†Œ์Šค์ธ๋ฐ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์ž‡๋Š” ๊ฐ’์„ ์ˆซ์ž์™€ ๊ด€๋ จ๋œ ๊ธฐ๋ณธํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค. 

 

 

- ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

int i = new Integer("100").intValue();
int i2 = Integer.parseInt("100");
Integer i3 = Integer.valueOf("100");

parseInt๋Š” ๋ฐ˜ํ™˜๊ฐ’์ด ๊ธฐ๋ณธํ˜•์ด๊ณ , valueOf๋Š” ๋ฐ˜ํ™˜๊ฐ’์ด ๋ž˜ํผํด๋ž˜์Šค ํƒ€์ž…์ด๋ผ๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. 

 

๊ทผ๋ฐ jdk1.5๋ถ€ํ„ฐ ๋„์ž…๋œ ์˜คํ† ๋ฐ•์‹ฑ ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜๊ฐ’์ด ๊ธฐ๋ณธํ˜•์ผ ๋•Œ์™€ ๋ž˜ํผ ํด๋ž˜์Šค์ผ๋•Œ์˜ ์ฐจ์ด๊ฐ€ ์—†์–ด์กŒ๋‹ค. 

๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ๊ตฌ๋ณ„์—†์ด valeuOf()๋ฅผ ์“ฐ๋Š” ๊ฑฐ๋„ ๊ดœ์ฐฎ์€ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ valueOf๊ฐ€ ์„ฑ๋Šฅ์€ ์กฐ๊ธˆ ๋” ๋Š๋ฆฌ๋‹ค. 

-> 16์ง„๋ฒ•์—์„œ๋Š” 'A~F' ๋ฌธ์ž๋ฅผ ํ—ˆ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Integer.parseInt("FF", 16); ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ง„๋ฒ•์„ ์ƒ๋žตํ•˜๋ฉด 10์ง„์ˆ˜๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Integer.parseInt("FF"); ์—์„œ๋Š” NumberFormatException์ด ๋ฐœ์ƒํ•œ๋‹ค. 

 

 

5๏ธโƒฃ ์˜คํ† ๋ฐ•์‹ฑ & ์–ธ๋ฐ•์‹ฑ (autoboxing & unboxing)

jdk1.5 ์ด์ „์—๋Š” ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜• ๊ฐ„์˜ ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ž˜ํผ ํด๋ž˜์Šค๋กœ ๊ธฐ๋ณธํ˜•์„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์„œ ์—ฐ์‚ฐ์„ ํ–ˆ์–ด์•ผ ํ•œ๋‹ค. 

๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ๋Š” ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜• ๊ฐ„์˜ ๋ง์…ˆ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค! ์ž๋ฐ” ์–ธ์–ด์˜ ๊ทœ์น™์ด ๋ณ€๊ฒฝ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ Integer ๊ฐ์ฒด๋ฅผ intํƒ€์ž…์˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” intValue() ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. 

 

int i = 5;

Integer i2= new Integer(7);

int sum = i + i2(.intValue()); 

 

๊ธฐ๋ณธํ˜• ๊ฐ’์„ ๋ž˜ํผํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜คํ† ๋ฐ•์‹ฑ์ด๋ผ๊ณ  ํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์–ธ๋ฐ•์‹ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค. 

-> ์˜คํ† ๋ฐ•์‹ฑ, ์–ธ๋ฐ•์‹ฑ์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์ผ ๋ฟ์ด๊ณ , ์ž๋ฐ”์˜ ์›์น™์ด ๋ณ€๊ฒฝ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค!

 

 

 

6๏ธโƒฃ ์œ ์šฉํ•œ ํด๋ž˜์Šค - java.util.Objects ํด๋ž˜์Šค 

Objects ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์˜ ๋ณด์กฐ ํด๋ž˜์Šค๋กœ Mathํด๋ž˜์Šค์ฒ˜๋Ÿผ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ static ์ด๋‹ค. 

๊ฐ์ฒด์˜ ๋น„๊ต๋‚˜ null๊ฐ’์„ ์ฒดํฌํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค!

 

isNull์€ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ๋„์ธ์ง€ ํ™•์ธํ•ด์„œ Null์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์•„๋‹ˆ๋ฉด false ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

nonNull์€ isNull๊ณผ ๋ฐ˜๋Œ€์ด๋‹ค. 

requireNonNull์€ ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ๋„์ด ์•„๋‹ˆ์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ๋งŒ์ผ ๊ฐ์ฒด๊ฐ€ ๋„์ด๋ฉด NPE๋ฅผ ๋ฐœ์ƒํ•œ๋‹ค. 

 

compare() ๋Š” ๋‘ ๋น„๊ต ๋Œ€์ƒ์ด ๊ฐ™์œผ๋ฉด 0, ํฌ๋ฉด ์–‘์ˆ˜, ์ž‘์œผ๋ฉด ์Œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

 

7๏ธโƒฃ ์œ ์šฉํ•œ ํด๋ž˜์Šค - java.util.Random ํด๋ž˜์Šค 

๋‚œ์ˆ˜๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์—๋Š” Math.random() ์ด ์žˆ๋Š”๋ฐ Math.random()์€ ๋‚ด๋ถ€์ ์œผ๋กœ Random ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋‘˜ ์ค‘ ํŽธํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 

 

double randNum = Math.random();

double randNum1= new Random().nextDouble();

 

Math.random() ๊ณผ Random ์˜ ๊ฐ€์žฅ ํฐ ์ž์ด์ ์€ ์ข…์ž๊ฐ’ seed ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 

์ข…์ž๊ฐ’์ด ๊ฐ€์€ Random ์ธ์Šคํ„ด์Šค๋“ค์€ ํ•ญ์ƒ ๊ฐ™์€ ๋‚œ์ˆ˜๋ฅผ ๊ฐ™์€ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

-> Random ์ธ์Šคํ„ด์Šค random , random1์ด ๊ฐ™์€ ์ข…์ž๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๊ฐ’๋“ค์„ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์–ป์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

8๏ธโƒฃ ์œ ์šฉํ•œ ํด๋ž˜์Šค - ์ •๊ทœ์‹๊ณผ java.util.regex ํŒจํ‚ค์ง€  

์ •๊ทœ์‹์ด๋ž€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ์›ํ•˜๋Š” ์กฐ๊ฑด(ํŒจํ„ด)๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์•„ ๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฏธ๋ฆฌ ์ •์˜๋œ ๊ธฐํ˜ธ์™€ ๋ฌธ์ž๋ฅผ ์ด์šฉํ•ด์„œ ์ž‘์„ฑํ•œ ๋ฌธ์ž์—ด์„ ๋งํ•œ๋‹ค. 

 

์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งŽ์€ ์–‘์˜ ํ…์ŠคํŠธ ํŒŒ์ผ ์ค‘์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์†์‰ฝ๊ฒŒ ๋ฝ‘์•„๋‚ผ ์ˆ˜๋„ ์žˆ๊ณ , ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ˜•์‹์— ๋งž๋Š”์ง€ ์ฒดํฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

Pattern ์€ ์ •๊ทœ์‹์„ ์ •์˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๊ณ  Matcher ๋Š” ์ •๊ทœ์‹์„ ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. 

 

9๏ธโƒฃ ์œ ์šฉํ•œ ํด๋ž˜์Šค - java.util.Scanner ํด๋ž˜์Šค 

Scanner๋Š” ํ™”๋ฉด ํŒŒ์ผ, ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ์ž…๋ ฅ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ๋ฌธ์ž๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š”๋ฐ ๋„์›€์„ ์ค„ ๋ชฉ์ ์œผ๋กœ jdk1.5๋ถ€ํ„ฐ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. 

 

Scanner sc = new Scanner(System.in);

String input = s.nextLine();

 

 

๐Ÿ”Ÿ ์œ ์šฉํ•œ ํด๋ž˜์Šค - java.util.StringTokenizer ํด๋ž˜์Šค 

StringTokenizer๋Š” ๊ธด ๋ฌธ์ž์—ด์„ ์ง€์ •๋œ ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ† ํฐ์ด๋ผ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฌธ์ž์—ด๋กœ ์ž˜๋ผ๋‚ด๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. 

StringTokenizer ์ด ๋ฐฉ๋ฒ• ์™ธ์—๋„ String์˜ split ์ด๋‚˜ Scanner ์˜ useDelimiter๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ์ •๊ทœ์‹ ํ‘œํ˜„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๊ทœ์‹ ํ‘œํ˜„์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” StringTokenizer ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•˜๋‹ค. 

 

100 200 300 400

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90