<Java์ ์ ์ ๊ฐ์ 3ํ>์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค.
๋ชฉ์ฐจ
- java.util.Objects ํด๋์ค
- java.util.Random ํด๋์ค
- ์ ๊ท์(Regular Expression) - java.util.regex ํด๋์ค
- java.util.Scanner ํด๋์ค
- java.util.StringTokenizer ํด๋์ค
- java.math.BigInteger ํด๋์ค
1. java.util.Objects ํด๋์ค
- Objectํด๋์ค์ ๋ณด์กฐ ํด๋์ค
- ๊ฐ์ฒด ๋น๊ต, hashcode์์ฑ, null์ฌ๋ถ, ๊ฐ์ฒด ๋ฌธ์์ด ๋ฆฌํด ๋ฑ์ ์ฐ์ฐ์ ์ํํ๋ ์ ์ ๋ฉ์๋๋ค๋ก ๊ตฌ์ฑ๋จ
๋ฉ์๋ | ๋ฆฌํด ํ์ | ์ค๋ช |
compare(T a, T b, Comparator <T> c) | int | ๋ ๊ฐ์ฒด a์ b๋ฅผ Comparator๋ฅผ ์ฌ์ฉํด์ ๋น๊ต |
deepEquals(Object a, Object b) | boolean | ๋ ๊ฐ์ฒด์ ๊น์ ๋น๊ต |
equals(Object a, Object b) | boolean | ๋ ๊ฐ์ฒด์ ์์ ๋น๊ต |
hash(Object values) | int | ๋งค๊ฐ๊ฐ์ด ์ ์ฅ๋ ๋ฐฐ์ด์ ํด์ ์ฝ๋ ์์ฑ |
hash(Object o) | int | ๊ฐ์ฒด์ ํด์์ฝ๋ ์์ฑ |
isNull(Object obj) | boolean | ๊ฐ์ฒด๊ฐ null์ธ์ง ์กฐ์ฌ |
nonNull(Object obj) | boolean | ๊ฐ์ฒด๊ฐ null์ด ์๋์ง ์กฐ์ฌ |
requireNonNull(T obj) requireNonNull(T obj, String message) requireNonNull(T obj, Supplier <String> messageSupplier) |
T | ๊ฐ์ฒด๊ฐ null์ธ ๊ฒฝ์ฐ ์์ธ ๋ฐ์ ,,,(์ฃผ์ด์ง ์์ธ ๋ฉ์์ง ํฌํจ) ,,,(๋๋ค์์ด ๋ง๋ ์์ธ ๋ฉ์์ง ํฌํจ) |
toString(Object o) toString(Object o, String nullDefault) |
String | ๊ฐ์ฒด์ toString() ๋ฆฌํด๊ฐ ๋ฆฌํด ...(์ฒซ ๋ฒ์งธ ๋งค๊ฐ๊ฐ์ด null์ผ ๊ฒฝ์ฐ ๋ ๋ฒ์จฐ ๋งค๊ฐ๊ฐ ๋ฆฌํด) |
2. java.util.Random ํด๋์ค
๋์๋ฅผ ์์ฑํ๋ ํด๋์ค๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํ๋ค.
๋ฉ์๋ | ์ค๋ช |
Random() | System.ํ์ฌ์๊ฐ์ ์ข ์๊ฐ(seed)์ผ๋ก ์ด์ฉํ๋ Random์ธ์คํด์ค๋ฅผ ์์ฑ |
Random(long seed) | ๋งค๊ฐ๋ณ์seed๋ฅผ ์ข ์๊ฐ์ผ๋ก ํ๋ Random์ธ์คํด์ค๋ฅผ ์์ฑ |
boolean nextBoolean() | booleanํ ๋์ ๋ฐํ |
void nextBytes(byte[] bytes) | bytes๋ฐฐ์ด์ byteํ์ ์ ๋์๋ฅผ ์ฑ์์ ๋ฐํ |
double nextDouble | doubleํ์ ์ ๋์ ๋ฐํ (0.0 <= x < 1.0) |
float nextFloat() | floatํ์ ์ ๋์ ๋ฐํ (0.0 <= x < 1.0) |
double nextGaussian() | ํ๊ท ์ 0.0์ด๊ณ ํ์คํธ์ฐจ๋ 1.0์ธ Gaussian๋ถํฌ์ ๋ฐ๋ฅธ doubleํ์ ๋์๋ฅผ ๋ฐํ |
int nextInt() | intํ ๋์ ๋ฐํ |
int nextInt(int n) | 0์ด์ n๋ฏธ๋ง์ ๋ฒ์๋ด์ ์๋ intํ ๋์ ๋ฐํ |
long nextLong() | longํ ๋์ ๋ฐํ |
void setSeed(long seed) | ์ข ์๊ฐ์ ์ฃผ์ด์ง ๊ฐ(seed)์ผ๋ก ๋ณ๊ฒฝ |
3. ์ ๊ท์(Regular Expression) - java.util.regex ํด๋์ค
- ์ ๊ท์(Regular Expression) : ํน์ ํ ๊ท์น์ ๊ฐ์ง ๋ฌธ์์ด์ ์งํฉ์ ํํํ๊ธฐ ์ํด ์ฐ์ด๋ ํ์์ธ์ด
- ์ ๋ ฅ๊ฐ์ ์ ํด์ง ํ์์ ๋ง๋์ง ๊ฒ์ฆํด์ผ ํ ๋์๋ ์ ๊ทํํ์์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.
- ์ ๊ทํํ์์ ์ฌ์ฉํ ๋์๋ java.util.regex ํจํค์ง ์์ ์๋ Patternํด๋์ค์ Matcherํด๋์ค๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
- Patternํด๋์ค : ์ ๊ท์์ ์ ์ํ๋๋ฐ ์ฌ์ฉ๋จ
- Matcherํด๋์ค : pattern์ ๋ฐ์ดํฐ์ ๋น๊ตํ๋ ์ญํ
3-1) ์ ๊ท์์ ์ ์ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํ๋ ๊ณผ์
- ์ ๊ท์์ ๋งค๊ฐ๋ณ์๋ก Patternํด๋์ค์ static๋ฉ์๋์ธ Pattern compile(String regex)์ ํธ์ถํ์ฌ Pattern์ธ์คํด์ค๋ฅผ ์ป๋๋ค.
- ์ ๊ท์์ผ๋ก ๋น๊ตํ ๋์์ ๋งค๊ฐ๋ณ์๋ก Patternํด๋์ค์ Matcher matcher(CharSequence input)์ ํธ์ถํด์ Matcher์ธ์คํด์ค๋ฅผ ์ป๋๋ค.
- Matcher์ธ์คํด์ค์ boolean matches()๋ฅผ ํธ์ถํด์ ์ ๊ท์์ ๋ถํฉํ๋์ง ํ์ธํ๋ค.
- ์ ๊ท์ ์์
import java.util.regex.*; //Pattern๊ณผ Matcher๊ฐ ์ํ ํจํค์ง
class RegularEx1{
public static void main(String[] args){
String[] data = {"bat", "baby", "bonus", "car", "combat"};
pattern p = Pattern.compile("c[a-z]*"); //ํจํด ์ง์ : c๋ก ์์ํ๋ ์๋ฌธ์์๋จ์ด
for(int i=0; i < data.length; i++){
Matcher m = p.matcher(data[i]);
if(m.matches())
System.out.print(data[i] + ",");
}
}
}
4. java.util.Scanner ํด๋์ค
- ์ฝ์ ๋ฐ์ดํธ๋ฅผ ๋ค์ํ ํ์ (๋ฌธ์, ์ ์, ์ค์, ๋ถ๋ฆฐ, ๋ฌธ์์ด ๋ฑ)์ผ๋ก ๋ณํํ์ฌ ๋ฆฌํดํ๋ ํด๋์ค
- Scanner๋ ์ ๋ ฅ๋๋ ํค ๊ฐ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋๋ ํ ํฐ ๋จ์๋ก ์ฝ๋๋ค.
- ๊ณต๋ฐฑ ๋ฌธ์ : ' \t ',' \f ',' \r ',' ',' \n '
- ๊ฐ๋ฐ์๊ฐ ์ํ๋ ํ์ ๊ฐ์ผ๋ก ์ฝ๊ฒ ์ฝ์ ์ ์๋ค.
- ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ณ ์ฝ์์ฐฝ์ ๋ฌธ์์ด์ ์ ๋ ฅํ๊ณ 'Enter'๋ฅผ ๋๋ฅด๋ฉด ๋๋ค.
๋ฉ์๋ | ์ค๋ช |
String next() | ๋ค์ ํ ํฐ์ ๋ฌธ์์ด๋ก ๋ฆฌํด |
byte nextByte() | ๋ค์ ํ ํฐ์ byte ํ์ ์ผ๋ก ๋ฆฌํด |
short nextShort() | ๋ค์ ํ ํฐ์ short ํ์ ์ผ๋ก ๋ฆฌํด |
int nextInt() | ๋ค์ ํ ํฐ์ int ํ์ ์ผ๋ก ๋ฆฌํด |
long nextLong() | ๋ค์ ํ ํฐ์ long ํ์ ์ผ๋ก ๋ฆฌํด |
float nextFloat() | ๋ค์ ํ ํฐ์ float ํ์ ์ผ๋ก ๋ฆฌํด |
double nextDouble() | ๋ค์ ํ ํฐ์ double ํ์ ์ผ๋ก ๋ฆฌํด |
String nextLine() | ' \n '์ ํฌํจํ๋ ํ ๋ผ์ธ์ ์ฝ๊ณ ' \n '์ ๋ฒ๋ฆฐ ๋๋จธ์ง๋ง ๋ฆฌํด |
void close() | Scanner์ ์ฌ์ฉ ์ข ๋ฃ |
boolean hasNext() | ํ์ฌ ์ ๋ ฅ๋ ํ ํฐ์ด ์์ผ๋ฉด true, ์๋๋ฉด ์๋ก์ด ์ ๋ ฅ์ด ๋ค์ด์ฌ ๋๊น์ง ๋ฌดํ์ ๊ธฐ๋ค๋ ค์, ์๋ก์ด ์ ๋ ฅ์ด ๋ค์ด์ค๋ฉด ๊ทธ ๋ true ๋ฆฌํด. ctrl + z ํค๊ฐ ์ ๋ ฅ๋๋ฉด ์ ๋ ฅ ๋์ด๋ฏ๋ก false ๋ฆฌํด |
- Scannerํด๋์ค ์ฌ์ฉ ์์
import java.util.Scanner;
Scanner scan = new Scanner(System.in); // Scanner ๊ฐ์ฒด
5. java.util.StringTokenizer ํด๋์ค
๋ฉ์๋ | ์ค๋ช |
StringTokenizer(String str, String delim) StringTokenizer(String str, String delim, boolean returnDelims) |
๋ฌธ์์ด(str)์ ์ง์ ๋ ๊ตฌ๋ถ์(delim)๋ก ๋๋๋ StringTokenizer๋ฅผ ์์ฑ(๊ตฌ๋ถ์๋ ํ ํฐ์ผ๋ก ๊ฐ์ฃผํ์ง ์์) ,,,(returnDelims์ ๊ฐ์ true๋ก ํ๋ฉด ๊ตฌ๋ถ์๋ ํ ํฐ์ผ๋ก ๊ฐ์ฃผํ๋ค.) |
int countTokens() | ์ ์ฒด ํ ํฐ์ ์๋ฅผ ๋ฐํ |
boolean hasMoreTokens() | ํ ํฐ์ด ๋จ์์๋์ง ํ์ธ |
String nextToken() | ๋ค์ ํ ํฐ ๋ฐํ |
5-1) ๋ฌธ์์ด์ ๋๋๋ ๋ฐฉ๋ฒ๋ค
String์ split ๋๋ Scanner์ useDelimiter |
StringTokenizer | |
๊ณตํต์ | ๊ธด ๋ฌธ์์ด์ ๊ตฌ๋ถ์๋ฅผ ๊ธฐ์ค์ผ๋ก token์ด๋ผ๋ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์์ด๋ก ์๋ผ๋ด๋ ๋ฐ ์ฌ์ฉ๋จ | |
์ฐจ์ด์ | ๊ตฌ๋ถ์๋ก ์ ๊ท์ ํํ์ ์ฌ์ฉ ๊ฐ๋จX, ์ ๊ตO |
๊ตฌ๋ถ์๋ก ํ๋์ ๋ฌธ์๋ฅผ ์ฌ์ฉ ๊ฐ๋จO, ์ ๊ตX |
6. java.math.BigInteger ํด๋์ค
- ์ ์ํ์ผ๋ก ํํํ ์ ์๋ ํ๊ณ๋ฅผ ๋๋ ์๋ค์ ๋ค๋ฃฐ ๋ ์ฌ์ฉํ๋ค.
- ๋ด๋ถ์ ์ผ๋ก int๋ฐฐ์ด์ ์ฌ์ฉํด์ ๊ฐ์ ๋ค๋ค longํ์ ๋ณด๋ค ํจ์ฌ ํฐ ๊ฐ์ ๋ค๋ฃฐ ์ ์์ง๋ง ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
- String์ฒ๋ผ ๋ถ๋ณ(immutable)์ด๋ค.
6-1) BigInteger์ ์ฐ์ฐ ๋ฉ์๋
๋ฉ์๋ | ์ค๋ช |
BigInteger add(BigInteger val) | ๋ง์ (this + val) |
BigInteger subtract(BigInteger val) | ๋บ์ (this - val) |
BigInteger multiply(BigInteger val) | ๊ณฑ์ (this * val) |
BigInteger divide(BigInteger val) | ๋๋์ (this / val) |
BigInteger remainder(BigInteger val) | ๋๋จธ์ง(this % val) |
6-2) ๋นํธ ์ฐ์ฐ ๋ฉ์๋
BigInteger์ ๋จ์ด์ง๋ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ๋นํธ๋จ์๋ก ์ฐ์ฐํ๋ ๋ฉ์๋๋ค์ ์ ๊ณตํจ
๋ฉ์๋ | ์ค๋ช |
int bitCount() | 2์ง์๋ก ํํํ์ ๋, 1์ ๊ฐ์(์์๋ 0์ ๊ฐ์)๋ฅผ ๋ฐํ |
int bitLength() | 2์ง์๋ก ํํํ์ ๋, ๊ฐ์ ํํํ๋๋ฐ ํ์ํ bit ์ |
boolean testBit(int n) | ์ฐ์ธก์์ n+1๋ฒ์งธ ๋นํธ๊ฐ 1์ด๋ฉด true, 0์ด๋ฉด false |
BigInteger setBit(int n) | ์ฐ์ธก์์ n+1๋ฒ์งธ ๋นํธ๋ฅผ 1๋ก ๋ณ๊ฒฝ |
BigInteger clearBit(int n) | ์ฐ์ธก์์ n+1๋ฒ์งธ ๋นํธ๋ฅผ 0์ผ๋ก ๋ณ๊ฒฝ |
BigInteger flipBit(int n) | ์ฐ์ธก์์ n+1๋ฒ์งธ ๋นํธ๋ฅผ ์ ํ(0 <-> 1) |
'๐ฐ ์ธ์ด > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
java.lang ํจํค์ง (0) | 2020.06.13 |
---|---|
์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(3) (0) | 2020.06.09 |
์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(2) (0) | 2020.06.09 |
์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(1) (0) | 2020.06.04 |
switch/case๋ฌธ (0) | 2020.06.04 |