StringBuffer 와 StringBuilder 클래스 / java.lang.Math 클래스
2022. 10. 6. 08:09ㆍDev.Program/Java & Spring
728x90
p433
======== Ex3.java
< StringBuffer 와 StringBuilder 클래스 >
- 문자열 조작이 빈번할 경우 사용하는 클래스
- String 클래스와 아무런 관계가 없는 클래스(상속 관계 X)
- 내부적으로 임시 저장 공간인 버퍼(Buffer)를 사용하여 문자열을 관리
⇒ 버퍼의 문자열을 직접 조작하므로 연산 과정에서 새로운 문자열 생성 X
- toString() 메서드가 오버라이딩 되어 있기 때문에 문자열 출력 가능
- StringBuffer 클래스는 멀티쓰레딩 환경을 지원하며 무겁고,
StringBuilder 클래스는 멀티쓰레딩 환경을 지원하지 않으며 가볍다.
- 기본적인 사용법은 거의 유사함
- Java.lang 패키지의 StringBuffer 와 StringBuilder가 보인다.
- 객체 생성 시 문자열을 사용하여 객체를 초기화하는 경우
- 출력창
- 출력 시 toString() 메서드 생략 가능
> 대신 저장할 때는
이렇게 안됨
- 저장 시 toString() 메서드 생략 불가
- 아무것도 출력되지 않는다.
- append(문자열) : 문자열 추가(맨 뒤에 붙임)
- 출력창
- 버퍼에 문자열 추가(기존 문자열 뒤에 결합)
- 출력창
- .append() 버퍼에 문자열 또 추가(기존 문자열 뒤에 결합)
- insert(특정 인덱스, 삽입할 문자열) : 특정 인덱스에 문자열 삽입
- 출력창
- insert(특정 인덱스, 삽입할 문자열)
- 버퍼 문자열 특정 인덱스에 문자열 삽입
⇒ append 와 insert 의 차이는
append 는 맨 뒤에 붙이는 거, insert 는 원하는 index에 삽입하는 거
- reverse() : 문자열 반전
- 출력창
- 뒤집어져서 나옴!
- ex) 암호화 같은 거 할 때 쓰임 ( 각 문자에 -3 을 해서 reverse 해서 보내면 받은 사람은 +3으로 해독하고 뭐 이런식으로…. )
p436
p437 Math
======== Ex4.java
< java.lang.Math 클래스 >
- 수학 관련 여러가지 기능을 제공하는 클래스
- final 클래스로 상속 불가
- 모든 멤버는 static 이므로, 클래스명만으로 접근 가능
1. Math.PI : 가장 기본적인 상수 - 3.14~
- 가장 기본적인 상수~~ PI
2. Math.abs() : 절대값
3. Math.max(), Math.min() : 최대, 최소값
- 루트 4
4. Math.sqrt(x, y) : xy(x의 y승) 계산
- x, y 일 때 xy로 계산해줌
5. Math.round() : 반올림
======== Test4.java
Math 클래스의 활용 연습
문제 1) 실수 num 의 소수점 둘째자리 반올림 수행
double num = 3.45; |
- 푼 답
- 출력창
풀이 단계
1) 3.45 를 34.5 로 변환하여 소수점 둘째자리 숫자를 첫째자리 숫자로 이동
2) 34.5 를 Math.round() 메서드를 통해 반올림 수행 ⇒ 35
3) 35 를 10.0 으로 나누어서 다시 3.5 로 되돌림
<Ex4.java>
6. Math.random() : 난수 발생
- double 타입 범위 내의 무작위 숫자(난수) 발생시키는 메서드
범위 : 0.0 <= x < 1.0
- 0 <= n < X 까지의 정수형 난수를 생성할 경우 : (int)(Math.random() * X)
- 리턴타입(double) 확인
- 이런식으로 난수 발생(호출할 때마다 달라짐! 랜덤!)
> 0 <= n < X 까지의 정수형 난수를 생성할 경우 : (int)(Math.random() * X)
- 일단 그냥 실행해보기
- 소수점까지 나온다.
- int 로 형변환 해준다.
- 출력창
- 처음 시작 범위를 바꿔주고 싶을 땐 + n 해주기! (모르겠다면 공식처럼 외우기)
- 5까지 나옴
<Test4.java>
문제2) Math.random() 메서드를 사용한 난수 생성
1) 1 ~ 45 사이의 난수 6개 생성 및 출력(중복 포함)
- 푼 답
- 출력창 (지금은 중복값이 나옴)
2) 주사위 2개를 던져 두 주사위의 합 출력
- 주사위는 각각 int형 변수 dice1, dice2 로 선언하여 1 ~ 6 사이의 난수 저장
- 푼 답
- 출력창
- 이런걸로 모두의 마블 같은 게임 만드는거~~!
728x90
'Dev.Program > Java & Spring' 카테고리의 다른 글
Wrapper 클래스 / Collection Framework(컬렉션 프레임워크) (0) | 2022.10.06 |
---|---|
[Math.random()] 로또 번호 생성 프로그램 (0) | 2022.10.06 |
[Java] java.lang.String 클래스 (0) | 2022.10.05 |
[Java] java.lang.Object 클래스 - (2) toString() (0) | 2022.10.05 |
[Java] java.lang.Object 클래스 - (1) equals() (1) | 2022.10.05 |