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);
}

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
유효한 주민등록번호입니다.

'Java > Java' 카테고리의 다른 글
국비지원 자바 복습 7 (객체의 배열, Object, 상속, 업/다운 캐스팅) (1) | 2022.10.04 |
---|---|
국비지원 자바 복습 6 (메소드, 메인메소드, opp, 클래스) (0) | 2022.10.04 |
국비지원 자바 복습 4 (반복 문, 배열) (1) | 2022.10.04 |
국비지원 자바 3(타입변환, 제어 문, 성적프로그램) (1) | 2022.10.04 |
Java 1 (기초, 변수, 연산자,) (0) | 2022.10.03 |