본문 바로가기
Java/Java

국비지원 자바 복습 5 (2차원 배열, String 클래스, 주민등록 검증)

by code2772 2022. 10. 4.

[ 목차 ]

    728x90
    반응형

    1. 2차원 배열

    값이 행과 열로 구성된 배열

    1차원

    데이터타입[] 배열이름 = new 데이터타입[갯수];

    int[] arr = new int[5];

    arr[0] = 10;

    //1차원 배열에서 한번에 초기화 및 변수선언

    int[] arr = {10, 20, 30}; // new int 생략 가능하다.

    2차원

    데이터타입[][] 배열이름 = new 데이터타입[행갯수][열갯수];// |(행)-(열)

    int[][] arr = new int[2][3];

    [0,0] [0,1] [0,2]0행

    [1,0] [1,1] [1,2]1행

    0열 1열 2열

    arr[0][0] = 10;

    arr[0][1] = 20;

    ..

    arr[1][2] = 60;

    // 2차원 배열의 선언 및 초기화

    int[][] arr = {{10,20,30},{40,50,60}};

    오름차순 정리

     

    향상된 for문

    for(변수 : 배열){

    배열의 요소 갯수만큼 반복할 문장;

    ...

    }

    int[] num = {10,20,30};

    for(int i : num){

    System.out,println(i);

    }

    str배열 4회만큼 반복

     

    2. String 클래스

    자바의 문자열을 저장하고 다룰 수 있는 클래스

    👍 String 클래스는 불변객체! - 변화시키지 않는것이 좋다.

    //System.out.println(str1.equals(str2));

    주소가 달라 String을 비교할려면 equals를 사용한다.

    char[] ch = {'안', '녕', '하', '세', '요'};

    String str = new String("안녕하세요");

    Sting str = "안녕하세요";

    public class String2 { //String 함수들

    public static void main(String[] args) {

    String str1 = new String("Java");

    String str2 = new String("Programming");

    System.out.println(str1);

    System.out.println(str2);

    //concat() : 문자열과 문자열을 연결

    System.out.println(str1.concat(str2)); // 1번

    String temp = str1.concat(str2);// 2번

    System.out.println(temp);

    System.out.println(str1 + str2);//3번

    // indexOf() : 원하는 문자열을 찾아 해당하는 문자열의 index를 반환

    System.out.println(str2.indexOf("P"));//Programming 주소 값 P -> 0

    System.out.println(str2.indexOf("p"));// 원하는 주소가 없으면 -1이 나온다.

    System.out.println(str2.indexOf("gra"));// 첫 번째 자리의 주소만 출력된다.

    System.out.println(str2.indexOf("r",3));//(ch,int) int는 시작점을 의미한다.

    // 위 문장은 주소 3부터 시작하여 r을 찾는다.

    // trim() : 문자열의 앞뒤 공백을 제거

    String str3 = new String(" 자바 ");

    System.out.println("👍"+str3+"👍");

    System.out.println("👍"+str3.trim()+"👍");

    // toLowerCase() : 소문자로 변환, toUpperCase() : 대문자로 변환

    System.out.println(str2.toLowerCase());

    System.out.println(str2.toUpperCase());

    //if(eventkey.toLowerCase() == q)

    //length() : 문자열의 길이를 변환

    System.out.println(str2.length());//11

    // ✔ substring() : 원하는 문자를 추출

    System.out.println(str2.substring(3));//문자열 3부터 끝까지 추출

    //programming -> gramming

    temp = str2.substring(3);

    System.out.println(temp);

    System.out.println(str2.substring(3,7));//3부터 7-1까지 (뒤에 있는 숫자 직전까지)

    //문자열을 숫자로 변환

    String str4 ="100";

    int i=200;

    System.out.println(str4+i);//100200

    //Integer.parseInt() 숫자형태로 있는 문자열을 정수로 변경한다.

    System.out.println(Integer.parseInt(str4)+i);

    }

    }

    과제. 주민등록 검증 프로그램

    주민등록번호 검증 프로그램을 만들어보자.

    0 0 1 0 1 1 - 3 0 6 8 5 1 8

    1. 각 자리에 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 곱하고 모두 더하기

    (단, 주민등록번호의 마지막 자리는 제외)

    0 0 1 0 1 1 3 0 6 8 5 1

    * * * * * * * * * * * *

    2 3 4 5 6 7 8 9 2 3 4 5

    0 + 0 + 4 + 5 + 6 + 7 + 24 + 0 + 18 + 24 + 20 + 5 = 102

    2. 11로 나눈 나머지 값을 구함

    102 % 11 = 3

    3. 11에서 2번의 결과를 뺸 값을 구함

    11 - 3 = 8

    (단, 3번의 결과가 2자리(10이상)인 경우 10으로 나눈 나머지 값을 구함)

    4. 3번의 결과값과 주민등록번호 마지막 자리와 일치하면 유효한 주민등록번호!

    주민등록번호를 입력하세요 . 0010113068518

    유효한 주민등록번호입니다.

    반응형