Java/Java

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

code2772 2022. 10. 4. 12:14
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

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

반응형