본문 바로가기

JAVA BASE/lang & util19

14. [자바] BigDecimal클래스 BigDecimal클래스? double타입으로 표현할 수 있는 값도 범위가 넓은 편이지만 정밀도가 최대 13자리 밖에 되지 않고 실수형의 특성상 오차를 피할 수 없다. 하지만 BigDecimal을 이용한다면 더 큰 실수를 다룰수 있다. private final BigInteger intVal; // 정수(unscaled value) private final int scale; // 지수(scale) private transient int precision // 정밀도(percision) - 정수의 자릿수위의 코드는 클래스 내부에 정의된 멤버변수인데 정수부분 지수부분 정밀도를 각 변수에 담아 사용하고 있다 BigDecimal에 $123.45$를 담는다 했을 때 $12345\times10^{-2}$ 로 표현.. 2020. 12. 28.
13. [자바] BigInteger클래스 BigInteger클래스? 정수형으로 표현할 수 있는 값의 한계가 있는데 가장 큰 정수형 타입인 long으로도 10진수 19자리 정도이다. 이 값도 상당히 큰 값이지만, 분명 더 큰 값을 다뤄야 할 때가 있는데 이럴때 BigInteger를 사용하면 좋다. BigInteger는 내부적으로 int배열을 사용해 값을 다루기 때문에 long타입보다 훨씬 큰 값을 다룰 수있지만 성능은 long타입보다 떨어진다. final int signum; // 부호. 1(양수), 0, -1(음수) 셋 중의 하나 final int[] mag; // 값(magnitude) BigInteger도 String처럼 불변이다. BigInteger의 생성 BigInteger는 정수형으로는 표현할 수 있는 값의 한계가 있기 때문에 문자열로.. 2020. 12. 28.
12. [자바] StringTokenizer클래스 StringTokenizer클래스? StringTokenizer는 문자열을 지정된 구분자(deilmiter)를 기준으로 토큰(token)이라는 여러 개의 문자열로 잘라내는 데 사용된다. 예를들어 "1,2,3,4,5"를 ','구분자로 잘라내면 "1", "2", "3", "4", "5"의 5개의 문자열(토큰)을 얻을 수 있다. StringTokenizer을 이용하는 방법 외에도 String클래스의 split()을 이용하는 방법 "1,2,3,4,5".split();Scanner클래스의 useDelimiter()를 이용하는 방법 등이 있다. Scanner scan = new Scanner("1,2,3,4,5").useDelimiter(","); while(scan.hasNextInt()) { sc.. 2020. 12. 28.
11. [자바] Scanner클래스 Scanner클래스? Scanner는 화면, 파일, 문자열과 같은 입력소스로부터 문자데이터를 읽어오는데 도움을 주는 클래스이다 Scanner scan = new Scanner(System.in); String input = s.nextLine(); 또 여러가지 생성자를 지원하기 때문에 다양한 입력소스로부터 데이터를 읽을 수 있다. Scanner(String source) Scanner(File source) Scanner(InputStream source) Scanner(Readable source) Scanner(ReadableByteChannel source) Scanner(Path source) Scanner는 정규식 표현(Regular expression)을 이용하여 라인단위의 검색이 가능하고 구.. 2020. 12. 27.