String, Calendar, Date, Wrapper, BigInteger
이해보다는 이런게 있구나를 알고 있다가 필요하면 다시 찾아보는 그런 메소드 들을 둘러보았다.
String 변수명 = new String(char 배열);
n.charAt(8)
String변수 s1과 s2를 비교 ⇒ s1.compareTo(s2)
차례로 한 글자씩 같은 자리의 글자끼리 비교한다. 두 글자 간의 뺄셈의 결과를 얻어서 (아트키 코드로 연산) 어떤 것이 더 작은지 큰 지를 정한다.
ex) 'A' - 'B' => -1 뒤에서 빼려는 글자가 크다
앞쪽부터 비교해서 같은 글자는 지나치는 방식으로, 크기가 결정되면 뒤에 글자들은 비교하지 않는다.
전달인수 String을 메서드 호출 객체의 String에 이어 붙이는 연산
concat 메서드는 원본 s에 있는 문자열에 " world"를 이어붙이기하고 s1에 업데이트해서 저장하는 것이 아니라, 이어붙이기된 새로운 문자열 객체를 만들어서 새로운 레퍼런스 변수에 저장할 수 있게 리턴해준다.
대소문자 구분해서 비교 : String.equals(String);
대소문자 구분하지 않고 비교 : String.equalsIgnoreCase(String);
메서드 호출 객체의 문자열 중에 괄호 안에 있는 문자가 몇 번째로 위치하는 지를 구해준다.
있으면 위치값(0부터 시작하는 정수), 없으면 -1
s.indexOf('e', 1) : 찾고자 하는 문자가 지정한 정수(0부터 시작)번째부터 시작해서 몇 번째 글자로 위치하는 지를 구해준다.
예) 알파벳 'e'가 문자열 s의 1번째부터 찾아서 전체 글자의 몇 번째 글자인지 구함 => 1리턴
s1을 s2로 대체하기 (한 글자, 문자열 둘 다 됨)
replace 메서드의 결과를 별도의 변수에 저장. 원래 원본은 보호
원본에서 n1(0부터 시작)부터 n2-1번째(9-1)까지 추출
String 데이터 중 필요한 글자들만 추출
'.'도 글자수 포함
매개변수를 숫자 하나만 넣으면 그 숫자 번째부터 끝까지 추출
Calendar : 싱글톤 방식의 클래스, 생성자가 private으로 접근 차단됨
(외부에서 접근 금지 -> 외부에서 new Calendar() 사용안됨)
Scanner처럼 import해서 사용함.
유일하게 실행된 new Calendar()는 클래스 내부에서 실행되어 클래스 내부에 단 하나만 존재 그리고 그 레퍼런스 변수가 가지고 있는 주소를 리턴하는 public static 형태의 getInstance메서드로 인스턴스의 주소를 리턴 받아 쓴다.
이후 다시 getInstance() 메서드가 실행되도 현재 HEAP에 이미 있는 인스턴스의 주소가 리턴
특별히 날짜 지정을 하지 않으면 현재 날짜는 오늘 날짜이다.
공유된 인스턴스에서 현재 날짜에 관한 정보만 객체끼리 서로 다른 날짜를 따로 관리하고 많은 내용이 공유된다.
.get() : 전달인수의 정수가 무엇이냐에 따라 날짜 정보 중 필요한 정보를 추출해내는 메서드
예) 1을 전달하면 연도를 추출
Date : 날짜 데이터 클래스, Calendar와는 다름
SimpleDateFormat
: 날짜 서식 클래스, 날짜 데이터를 서식 데이터에 맞춰서 적용 후 출력
Wrapper class란?
int, double, chat 등 기본 타입의 데이터를 객체로 표현해야 하는 경우가 있다.
이 때, 기본 자료타입을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다.
자바는 모든 기본타입은 값을 갖는 객체를 생성할 수 있다.
이런 객체를 포장 객체라고도 하는데 그 이유는 기본 타입의 값을 내부에 두고 포장하기 때문이다.
래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다.
만약 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다.
BigInteger 클래스
: int와 long형 자료로도 담아 낼 수 없이 큰 숫자를 다룰 수 있게 만든 클래스
팩토리얼 계산