๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java

[ch.9] java.lang ํŒจํ‚ค์ง€์™€ ์œ ์šฉํ•œ ํด๋ž˜์Šค

by OR15A 2023. 11. 13.

Wrapper ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€)

  • ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ.
    (๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ์ฒด๋ฅผ ์š”๊ตฌ, ๊ธฐ๋ณธํ˜• ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด๋กœ ์ €์žฅํ•ด์•ผ ํ•  ๋•Œ, ๊ฐ์ฒด ๊ฐ„์˜ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•  ๋•Œ)
  • 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•(์„ฑ๋Šฅ์ข‹์•„์„œ์”€) โ†’ 8๊ฐœ์˜ ๋ž˜ํผํด๋ž˜์Šค
  • ๋ž˜ํผํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž( ๋งค๊ฐœ๋ณ€์ˆ˜ )
    ๋งค๊ฐœ๋ณ€์ˆ˜=๋ฌธ์ž์—ด or ๊ฐ ์ž๋ฃŒํ˜•์˜ ๊ฐ’

๊ธฐ๋ณธํ˜• & ๋ž˜ํผํด๋ž˜์Šค

  • boolean, Boolean
  • char, Character
  • byte, Byte
  • short, Short
  • int, Integer
  • long, Long
  • float, Float
  • double, Double
  • ๋ž˜ํผํด๋ž˜์Šค๋“ค์€ ๋ชจ๋‘ equals( )๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด์žˆ์–ด์„œ ์ฃผ์†Œ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฐ’์„ ๋น„๊ต.
  • ๋ž˜ํผํด๋ž˜์Šค๋“ค์€ static์ƒ์ˆ˜๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ–๊ณ ์žˆ์Œ.
  • (MAX_VALUE, MIN_VALUE, SIZE, BYTES, TYPE ๋“ฑ)์˜คํ† ๋ฐ•์‹ฑ & ์–ธ๋ฐ•์‹ฑ
  • Vectorํด๋ž˜์Šค๋‚˜ ArrayListํด๋ž˜์Šค์— ์œ ์šฉํ•จ.
  • JDK1.5์ด์ „์—๋Š” ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด ๋ž˜ํผํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์•ผ ํ–ˆ์Œ. ์ด์ œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ intValue( )๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•จ.
  • ์˜คํ† ๋ฐ•์‹ฑ
    • ๊ธฐ๋ณธํ˜• ๊ฐ’์„ ๋ž˜ํผํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋กœ ์ž๋™ ๋ณ€ํ™˜ ํ•ด์ฃผ๋Š” ๊ฒƒ. (๊ทธ๋ƒฅ ๋ณ€์ˆ˜๊ฐ’์„ ๊ฐ์ฒด๋ผ๋Š” ๋ฐ•์Šค์— ๋„ฃ์–ด์„œ ์„œ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ)
  • ์–ธ๋ฐ•์‹ฑ
    • ์˜คํ† ๋ฐ•์‹ฑ์˜ ๋ฐ˜๋Œ€. ๋ž˜ํผํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ณธํ˜•์œผ๋กœ ์ž๋™ ํ˜•๋ณ€ํ™˜ ํ•˜๋Š” ๊ฒƒ.


Number ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€)

  • ์ถ”์ƒํด๋ž˜์Šค.
  • ์ˆซ์ž ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๋ž˜ํผ ํด๋ž˜์Šค๋“ค์˜ ๊ณตํ†ต ์กฐ์ƒ.
  • BigInteger, BigDecimal์€ ๋ฐฐ์—ด์„ ์ด์šฉํ•จ.
  • ๋ณ€ํ™˜ ์‹œ ์ง„๋ฒ•์„ ๊ผญ ์จ์ค˜์•ผ ํ•จ. ์•ˆ์“ฐ๋ฉด ์—๋Ÿฌ.
  • [ํ•„๊ธฐํ•ด๋‘” ์ด๋ฏธ์ง€ ์ถ”๊ฐ€]


java.util.Random ํด๋ž˜์Šค

  • Math.random( )์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•จ.
  • double ren = Math.random(); double ren2 = new Random().nextDouble();
  • ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•จ.
  • Random( )์€ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์„œ seed๊ฐ€ ๊ฐ™์œผ๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ๋‚œ์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. ๊ทœ์น™์ ์ธ ๋žœ๋ค์ด ํ•„์š”ํ•  ๋•Œ.
  • ์ƒ์„ฑ์ž Random( )์˜ seed๋ฅผ System.current.TimeMilis( )๋กœ ํ•˜๋ฉด์‹คํ–‰ํ• ๋•Œ๋งˆ๋‹ค ์–ป๋Š” ๋‚œ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง. (n ๋นผ๊ณ !)
  • nextInt(int n)์€ 0~n๊ฐœ ์‚ฌ์ด์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•จ.


๊ทœ์น™์‹ java.util.regex ํด๋ž˜์Šค

์ •๊ทœ์‹ = ๊ทœ์น™์‹

  • DB์ค‘์—์„œ ์›ํ•˜๋Š” ์กฐ๊ฑด(ํŒจํ„ด)๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•จ. (๋ฌธ์ž์—ด=๋ฏธ๋ฆฌ ์ •์˜๋œ ๊ธฐํ˜ธ์™€ ๋ฌธ์ž๋ฅผ ์ด์šฉํ•ด ์ž‘์„ฑํ•œ ๋ฌธ์ž์—ด)
  • ๋งŽ์€ ์–‘์˜ txtํŒŒ์ผ ์ค‘ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฐพ๊ฑฐ๋‚˜, ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ˜•์‹์— ๋งž๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅํ•จ.
  • Pattern: ๊ทœ์น™์‹, ์ •๊ทœ์‹ ์ •์˜
  • Matcher: ํŒจํ„ด๊ณผ ๋ฐ์ดํ„ฐ ๋น„๊ต
  • ์ •๊ทœ์‹์„ ์ •์˜ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ณผ์ • ๋‹จ๊ณ„
    • โ‘ ์ •๊ทœ์‹์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Patternํด๋ž˜์Šค์˜ static๋ฉ”์„œ๋“œ์ธ Pattern compile(String regex)์„ ํ˜ธ์ถœํ•˜์—ฌ Pattern ์ธ์Šคํ„ด์Šค๋ฅผ ์–ป๋Š”๋‹ค.
    • โ–ทPattern p = Pattern.compile(โ€œc[a-z]โ€);
    • โ‘ก์ •๊ทœ์‹์œผ๋กœ ๋น„๊ตํ•  ๋Œ€์ƒ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Patternํด๋ž˜์Šค์˜ Matcher matcher๋ฅผํ˜ธ์ถœํ•ด์„œ ์ธ์Šคํ„ด์Šค์–ป๊ธฐ
    • โ–ทMatcher m = p.matcher(dara[i]);
    • โ‘ขMatcher์ธ์Šคํ„ด์Šค์— boolean matches( )๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์ •๊ทœ์‹์— ๋ถ€ํ•ฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ.
    • โ–ทif(m.matches( ))์ •๊ทœ์‹ ํŒจํ„ด
  • ์ •๊ทœ์‹์˜ ๋ฐ˜๋ณต
  • * : ์•ž์˜ ํŒจํ„ด์„ 0~n๋ฒˆ ๋ฐ˜๋ณต
  • + : ์•ž์˜ ํŒจํ„ด์„ 1~n๋ฒˆ ๋ฐ˜๋ณต
  • ์˜ˆ) ba* (ba, baa), ba+ (ba, baa)
  • email regex ex ์‚ฌ์ดํŠธ์—์„œ ์—ฐ์Šต๊ฐ€๋Šฅ
  • g [ a โ€“ z ] * : g๋กœ ์‹œ์ž‘ํ•˜๋Š” ์˜๋‹จ์–ด
  • f [ a-zA-Z ] : f๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‘์ž๋ฆฌ ์˜๋‹จ์–ด
  • . * : ๋ชจ๋“  ๋ฌธ์ž์—ด
  • C . : C๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‘์ž๋ฆฌ ๋ฌธ์ž์—ด
  • t . * n : t๋กœ ์‹œ์ž‘ํ•˜๊ณ  n์œผ๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด
  • . * a . * : a๋ฅผ ํฌํ•œํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด
  • ๊ทธ๋ฃนํ™”
  • ์ •๊ทœ์‹์˜ ์ผ๋ถ€๋ฅผ ๊ด„ํ˜ธ๋กœ ๋‚˜๋ˆ„์–ด ๋ฌถ์–ด์„œ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ์Œ.
  • find( )
  • ์ฃผ์–ด์ง„ ์†Œ์Šค๋‚ด์—์„œ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ์•„๋‚ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ฐพ์ง€ ๋ชปํ•˜๋ฉด false๋ฐ˜ํ™˜.
  • ์ •๊ทœ์‹๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ์œผ๋ฉด, ๊ทธ ์œ„์น˜๋ฅผ start( )๊ณผ end( )๋กœ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๊ณ  aR(page.509)์„ ์ด์šฉํ•ด์„œ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ์น˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ. ์น˜ํ™˜๊ฒฐ๊ณผ๋Š” StringBuffer์— ์ €์žฅ.
  • ๋‹ค์Œ ํ˜ธ์ถœ์—์„œ๋Š” ์ด์ „์— ๋ฐœ๊ฒฌํ•œ๋ถ€๋ถ„์˜ ๋‹ค์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ํŒจํ„ด ๋งค์นญ์„ ์‹œ์ž‘ํ•จ.


java.util.Scanner ํด๋ž˜์Šค

Scanner

  • ์ž…๋ ฅ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ๋ฌธ์ž๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š”๋ฐ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์ถ”๊ฐ€๋จ(JDK 1.5~)
  • ์ •๊ทœ์‹ ํ‘œํ˜„์„ ์ด์šฉํ•œ ๋ผ์ธ๋‹จ์œ„ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•จ.
  • ๋ณต์žกํ•œ ํ˜•ํƒœ์˜ ๊ตฌ๋ถ„์ž ์ฒ˜๋ฆฌ๋„ ๊ฐ€๋Šฅํ•จ.
  • ์ž…๋ ฅ๊ฐ’๊ด€๋ จ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ด์„œ ๋ณ€ํ™˜ํ•˜๋Š” ์ˆ˜๊ณ  ๋œ์Œ.
  • nextBoolean( ), nextByte( ), nextInt( ), nextLine( ) ๋“ฑ..


java.util.StringTokenizer ํด๋ž˜์Šค

ํ† ํฐ

  • ๊ธด ๋ฌธ์ž์—ด์„ ์ง€์ •๋œ ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ โ€˜ํ† ํฐโ€™์ด๋ผ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฌธ์ž์—ด๋กœ ์ž˜๋ผ๋‚ด๋Š”๋ฐ ์‚ฌ์šฉํ•จ.
  • ๋น„์Šทํ•œ ๊ฒฐ๊ณผ๋ฅผ ์œ„ํ•ด String์˜ split(๊ตฌ๋ถ„์ž), Scanner์˜ useDelimiter(ํŒจํ„ด)์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ์ •๊ทœ์‹ ํ‘œํ˜„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์กฐ๊ธˆ ์–ด๋ ค์›€. (split์€ ๋นˆ๋ฌธ์ž๋„ ํ† ํฐ์œผ๋กœ ์ธ์‹ํ•จ. ๋ฐ์ดํ„ฐ๋ฅผ ํ† ํฐ์œผ๋กœ ์ž๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜์—ฌ์„œ ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅโ†“)
  • ๊ทธ๋Ÿฌ๋‚˜ StringTokenizer์€ ๊ตฌ๋ถ„์ž๋ฅผ ๋‹จ ํ•˜๋‚˜์˜ ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.(๋นˆ ๋ฌธ์ž๋Š” ํ† ํฐ์œผ๋กœ ์ธ์‹ X)


java.math.BigInteger ํด๋ž˜์Šค

BigIntegerํด๋ž˜์Šค

  • long๋ณด๋‹ค ํฐ ๊ฐ’์„ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•จ.
  • ๋‚ด๋ถ€์ ์œผ๋กœ int๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ๋‹ค๋ฃธ.
  • BigInteger์€ ๋ถˆ๋ณ€์ž„=๋ฐ˜ํ™˜ํƒ€์ž…์ด BigInteger์ด๋ฉด ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฐ˜ํ™˜๋จ. ๊ฐ’์„ โ€˜2์˜ ๋ณด์ˆ˜โ€™ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•จ.
  • ์ƒ์„ฑ ์‹œ ๋ฌธ์ž์—ด์„ ์ˆซ์ž์—ด๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ .
  • ๋น„ํŠธ๋‹จ์œ„๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ๋งŽ์Œ.


java.math.BigDecimal ํด๋ž˜์Šค

BigDecimalํด๋ž˜์Šค

  • ์ •์ˆ˜(BigInteger)๋ฅผ ์ด์šฉํ•ด์„œ ์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„ํ•จ.
    (์‹ค์ˆ˜๋ฅผ ํ‘œํ˜„: ์˜ค์ฐจ๊ฐ€ ์—†๋Š” 2์ง„ ์ •์ˆ˜, ์ •์ˆ˜์™€ 10์˜ ์ œ๊ณฑ์˜ ๊ณฑ์œผ๋กœ)
  • ๋‚˜๋ˆ—์…ˆ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ ์กด์žฌ.
  • HALF_UP
    • ๋ฐ˜์˜ฌ๋ฆผ(5์ด์ƒ ์˜ฌ๋ฆผ, 5๋ฏธ๋งŒ ๋ฒ„๋ฆผ)
  • HALF_EVEN
    • ๋ฐ˜์˜ฌ๋ฆผ(์ง์ˆ˜๋Š” HALF_DOWN,ํ™€์ˆ˜๋ฉด HALF_UP)
  • HALF_DOWN
    • ๋ฐ˜์˜ฌ๋ฆผ(6์ด์ƒ ์˜ฌ๋ฆผ, 6๋ฏธ๋งŒ ๋ฒ„๋ฆผ)


StrictMath ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€)

  • Mathํด๋ž˜์Šค๋Š” OS์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์—ฐ์‚ฐํ•จ. ์ •์ˆ˜๊ณ„์‚ฐ์€ ์ž˜ํ•˜์ง€๋งŒ ์‹ค์ˆ˜๊ณ„์‚ฐ์—๋Š” ์˜ค์ฐจ๊ฐ€ ์žˆ์Œ+OS๋งˆ๋‹ค ๋ฐ˜์˜ฌ๋ฆผ์˜ ๊ธฐ์ค€์ด ๋‹ค๋ฆ„.
  • ์‹ค์ˆ˜์—ฐ์‚ฐ์—์„œ๋„ ๋Š˜ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•จ.
  • ์–ด๋Š OS์—์„œ ์‹คํ–‰๋˜์–ด๋„ ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ.
  • ceil( )
    • ์†Œ์ˆ˜์  ์ดํ•˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์˜ฌ๋ฆผ์„ ์ˆ˜ํ–‰.
  • floor( )
    • ์†Œ์ˆ˜์  ์ดํ•˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‚ด๋ฆผ์„ ์ˆ˜ํ–‰
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ceil(2.4)๋Š” 3.0์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , floor(2.7)์€ 2.0์„ ๋ฐ˜ํ™˜