-
자바 100제 Part.2 / 6 ~ 12개발자 수업/인터넷 강의 2021. 9. 15. 13:18
1. 배열의 값들을 for문과 같은 반복문을 사용하지 않고 한 번에 출력하는 코드를 작성
메서드로 배열의 요소 값들을 출력하는 경우 [이 안에 출력됨]
(1) Arrays.toString() 메서드
반복문을 사용하지 않고 배열의 값을 출력하고자 한다면 Arrays 클래스의 toString() 메서드를 사용하면 된다
toString() 인자로는 배열명을 넣어주면 된다
사용을 위해서는 기본적으로 java.util.Arrays; 임포트 선언이 되어 있어야 한다
import java.util.Arrays; public class Java100_array_Basic007{ public static void main(String[] args){ // 배열 선언 int[] ar = {238, 483, 239, 442, 487, 239, 873}; // toString() 메서드 사용하여 값 출력 System.out.println(Array.toString(ar)); // [] 괄호의 형태로 배열 표시를 보여주며 출력됨 System.out.println(ar[0]); // 238 // for 반복문 for(int i=0; i<ar.length; i++){ System.out.print(ar[i]+" "); // 238 483 239 442 487 239 873 } System.out.println(); } }
2. 다중 배열의 선언으로 맞는 것은?
// [1] int[] a,b,c; // [2] int d[],e[],f[]; // [3] int g[],h,i; // h와 i가 문제, int g[] 까지는 맞음 // 배열 사용이 가능한지 체크 a = new int[3]; b = new int[3]; c = new int[3]; System.out.println(Arrays.toString(a)); // [0,0,0] 출력 *import 해야함
3. 배열을 복사하는 메서드를 말해보고 관련된 예제 코드를 구현
(1) 배열 복사하기
arraycopy() 메서드 사용 -> System.arraycopy(원본배열명, 원본의 복사 시작점, 복사배열명, 붙여 넣기 시작점, 길이);
import java.util.Arrays; public class Java100_array_Basic009{ public static void main(String[] args){ // 배열 선언 int[] ar = {1,2,3,4,5}; int[] ar2 = {1,2,3,4,5,6,7,8,9,10}; // 배열 복사하기 -> System.arraycopy() System.arraycopy(ar,2,ar2,4,3); // 5,6,7에 3,4,5가 들어가게 됨 System.out.println(Arrays.toString(ar)); // [1,2,3,4,5] System.out.println(Arrays.toString(ar2)); // [1,2,3,4,3,4,5,8,9,10] } }
4. 1, 2차원 배열의 생성 및 출력을 다양한 예제로 구현
public class Java100_array_OneTwoArray{ public static void main(String[] args){ // (1) String 1차원 배열 (3개의 문자열을 담을 수 있는 배열 생성) // String 타입의 참조 변수 3개를 저장하기 위한 공간, 기본값은 null String[] province = new String[3]; System.out.println(province[0]); // null 출력됨 // (2) String 배열 초기화 -> 직접 입력 province[0] = "강원도"; province[1] = "전라도"; province[2] = "경상도"; System.out.println(province[0]); // 강원도 출력됨 // (3) String 배열 초기화 -> 배열 선언 및 생성 시 {}로 동시에 초기화 String[] nation = new String[]{"한국","미국","중국"}; System.out.println(nation[0]); // 한국 출력됨 String[] flower = {"무궁화","해바라기","개나리"}; System.out.println(flower[0]); // 무궁화 출력됨 // (4) 반복문을 사용하여 배열 값을 모두 출력 for(int i=0; i<flower.length; i++){ System.out.print(flower[i]+" "); // 무궁화 해바라기 개나리 출력됨 } // (5) 향상된 for문으로 배열 요소 출력 for(String aaa:flower){ System.out.print(aaa+" "); // 무궁화 해바라기 개나리 출력됨 } // (6) String 2차원 배열 만들기 -> 2x3 Shape // 아시아 -> 동북아시아(한국,중국,일본), 동남아시아(태국,베트남,필리핀) String[][]asia_nations={ {"한국","중국","일본"}, {"태국","베트남","필리핀"}, }; System.out.println(asia_nations[0]); // 동북아시아 국가를 저장하고 있는 1차원 배열의 주소를 참조하는 값이 출력 System.out.println(asia_nations[1]); // 동남아시아 국가를 ~ System.out.println(asia_nations[0][1]); // 중국 (실제 요소의 값을 출력) System.out.println(asia_nations[1][0]); // 태국 System.out.println(asia_nations.length); // 2 System.out.println(asia_nations[0].length); // 3 System.out.println(asia_nations[1].length); // 3 // (7) 반복문을 사용한 String 2차원 배열 값 출력 for(int i=0; i<asia_nations.length; i++){ for(int j=0; j<asia_nations[i].length; j++){ System.out.print(asia_nations[i][j]+" "); } System.out.println(); } // (8) charAt() 메서드 사용 -> 해당 인덱스에 있는 값을 반환 -> 단어를 char 배열에 한글자씩 저장할 수 있음 String[] strAr{"hong","kim","park"}; System.out.println(strAr[0]); // hong 출력됨 System.out.println(strAr[0].charAt(2)); // n 출력됨 // (9) 반복문에서 charAt() 메서드 사용 // (9-1) 잘못된 예1 for(int i=0; i<strAr.length; i++){ System.out.print(strAr[i].charAt(i)); // hir -> 이중 반복문을 사용해야 함 } // (9-2) 잘못된 예2 for(int i=0; i<strAr.length; i++){ for(int j=0, j<strAr.length; j++){ System.out.print(strAr[i].charAt(j)); -> honkimpar } } // (9-3) System.out.println(strAr.length); // 3 System.out.println(strAr[0].length); // Err System.out.println(strAr[0].length()); // 4 for(int i=0; i<strAr.length; i++;){ for(int j=0; j<strAr[i].length()); j++){ System.out.println(strAr[i].charAt(j)+" "); // h o n g k i m p a r k } } // (10) length vs length() // length는 배열의 길이, length()는 문자열의 길이 int[] aaa = new int[10]; System.out.println(aaa.length); // 10 String bbb = "Welcome to Seoul"; System.out.println(bbb.length()); // 16 (공백문자 포함) } }
'개발자 수업 > 인터넷 강의' 카테고리의 다른 글
자바 100제 Part.3 / 1 ~ 4 (0) 2021.09.17 자바 100제 Part.2 / 13 ~ 24 (0) 2021.09.15 자바 100제 Part.2 / 1 ~ 5 (0) 2021.09.15 자바 100제 Part.1 / 20 ~ 26 (0) 2021.09.14 자바 100제 Part.1 / 12 ~ 19 (0) 2021.09.13