상세 컨텐츠

본문 제목

[JAVA] 깊은복사 | Clone | String(고정문자열) | String.split(정규식문자열) | Math() 클래스 | 래퍼(wrapper) 클래스 | Random 클래스

IT/JAVA

by o_zeew 2024. 4. 18. 17:50

본문

24.04.18 44일차

 

깊은 복사

원본 배열 혹은 타겟 배열을 수정하여도 타겟 배열 혹은 원본 배열이 수정되지 않음

clone()

system.arraycopy()

for(arr > arr)

 

얕은 복사

둘 다 수정됨

 

 


Clone

 

String (고정 문자열)

String a = "hong" 으로 설정한 후 "kim"으로 변경을 하여도 메모리 어딘가에 있는 "hong"이 변경되거나 삭제되지 않음

 > 새로운 주소에 "kim"이 생긴 후 String a가 바라보는 주소가 "kim"으로 변경됨

 

indexOf()

 

substring()

 

charAt()

 

replace()

 

 

String.split (정규식문자열)

1) 문자열을 분리하여 배열형으로 반환

2) 무효의 문자열도 배열에 포함된다

 

String str="a,b,c,,,,d,e,f"; //값이 없이 ,,,만 존재하는 것을 무효의 문자라 부름

 

split(regex, limit)

limit의 숫자만큼만 쪼개기 = 쪼갤 갯수

limit을 3으로 설정하면 3번째 부터는 통째로

 ** 문자열은 하나의 통으로 보기 때문에 묶어서 사용 불가

' ,/- '를 하나의 문자로 봄
[4], [5]는 무효의값

 

많은 양의 영문 나누기

[a-z]로 a부터 z까지를 표현


String.split() 응용

아래와 같은 데이터를 엑셀에서 받아와 저장하였다.

각각의 행의 값을 사용하여 총점, 평균을 계산하여 화면에 출력하시오.

String data = "

          홍길동,90,90,90/

          일지매,80,80,80/

          춘향이,70,70,70"

 

이름   국어  영어  수학  총점  평균

---------------------------------------------

홍길동 90     90     90    270    90

일지매 80     80     80    240    80

춘향이 70     70     70    210    70

 

 

 

StringBuilder

 

 


Math() 클래스

Math.ceil(n) : n보다 크거나 같은 값을 반환

 

Math.floor(n) : n보다 작거나 같은 값을 반환

 

Math.round(n,m) : n을 m자리에서 반올림한 값 반환

 

 


래퍼(wrapper) 클래스

- auto boxing(자동 객체화)

- auto unboxing(자동 기본형화)

 

Long l = new Long(100L);

Long l = 100L; //auto boxing

 

long k = l.valueOf();

System.out.println(l)

 

String p="3.14";

double d = (double)p; //x

d=Double.parseDouble(p); //3.14

 


java.util.Random 클래스

java.util.Random() VS Math.random()

 

1) 정수형, 실수형을 지정하여 발생시킴

2) seed값을 지정하여 일정한 난수를 순서대로 발생시킴

 

(Math.random()*6)+1 >>> 1~6의 난수

new Random(6)+1 >>> 1~6의 난수

여러번을 실행할 때 seed값이 있는 경우는 같은 난수 출력

 

관련글 더보기