ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 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

    댓글