System.arraycopy
System.arraycopy(src, srcPos, dest, destPos, length);
src - 원본 배열
srcPos - 원본 배열의 복사 시작 위치
dest - 복사할 배열
destPost - 복사할 배열의 복사 시작 위치
length - 복사할 요소의 개수
public static void main(String[] args) {
int[] a = new int[5];
int[] b = new int[5];
for(int i = 0; i < a.length; i++) {
a[i] = i;
}
System.arraycopy(a, 0, b, 0, a.length);
for(int e : b) {
System.out.print(e+" ");
}
}
// 출력 : 0 1 2 3 4
출처: https://tosuccess.tistory.com/169 [EI_HJ:티스토리]
[연습문제]/ch9/Exercise9_6.java
[9-6] 다음과 같이 정의된 메서드를 작성하고 테스트하시오.
메서드명 : fillZero
기 능 : 주어진 문자열(숫자)로 주어진 길이의 문자열로 만들고, 왼쪽 빈 공간은 '0'으로 채운다.
만일 주어진 문자열이 null이거나 문자열의 길이가 length의 값과 같으면 그대로 반환한다.
만일 주어진 length의 값이 0보다 같거나 작은 값이면, 빈 문자열("")을 반환한다.
반환타입 : String
매개변수 : String src - 변환할 문자열
int length - 변환한 문자열의 길이
[문제]
//Exercise9_6
class Main {
public static String fillZero(String src, int length) {
/* (1) fillZero메서드를 작성하시오.
1. src가 널이거나 src.length()가 length와 같으면 src를 그대로 반환한다.
2. length의 값이 0보다 같거나 작으면 빈 문자열("")을 반환한다.
3. src의 길이가 length의 값보다 크면 src를 length만큼 잘라서 반환한다.
4. 길이가 length인 char배열을 생성한다.
5. 4에서 생성한 char배열을 '0'으로 채운다.
6. src에서 문자배열을 뽑아내서 4에서 생성한 배열에 복사한다.
7. 4에서 생성한 배열로 String을 생성해서 반환한다.
*/
}
public static void main(String[] args) {
String src = "12345";
System.out.println(fillZero(src, 10));
System.out.println(fillZero(src, -1));
System.out.println(fillZero(src, 3));
}
}
[실행 결과]
0000012345
123
[답]
class Main {
public static String fillZero(String src, int length) {
// 1. src가 널이거나 src.length()가 length와 같으면 src를 그대로 반환한다.
if (src == null || src.length() == length) {
return src;
// 2. length의 값이 0보다 같거나 작으면 빈 문자열("")을 반환한다.
} else if (length <= 0) {
return "";
// 3. src의 길이가 length의 값보다 크면 src를 length만큼 잘라서 반환한다.
} else if (src.length() > length) {
return src.substring(0, length);
// 4. 길이가 length인 char배열을 생성한다.
} else {
char[] chArr = new char[length];
// 5. 4에서 생성한 char배열을 '0'으로 채운다.
for (int i = 0; i < chArr.length; i++)
chArr[i] = '0';
// 6. src에서 문자배열을 뽑아내서 4에서 생성한 배열에 복사한다.
System.arraycopy(src.toCharArray(), 0, chArr, length - src.length(), src.length());
// 7. 4에서 생성한 배열로 String을 생성해서 반환한다.
return new String(chArr);
}
}
'Java' 카테고리의 다른 글
[TIL] 240101 RawJPA로 개발하기 (1) | 2024.01.01 |
---|---|
[TIl] 231226 Java의 정석 문제풀이 9-10, 9-11 (1) | 2023.12.26 |
Java의 정석 문제풀이 (오답) [8-7][8,9] Java Exit, RuntimeException, 예외처리 (2) | 2023.12.08 |
[TIL] 231128 Java 예외처리 (0) | 2023.11.28 |
[TIL] 231120 Java의 정석 연습문제 7장 오답 (1) | 2023.11.20 |