on
자바의 정석1-8 배열들(String, 2차원)과 클래스(String, Arrays)
자바의 정석1-8 배열들(String, 2차원)과 클래스(String, Arrays)
String 배열
String str = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성
String 은 참조형이기 때문에 참조형의 기본값인 null 이 들어감 각 자료형의 기본값
name[0] = “kim”;
name[1] = “park”;
name[2] = “yi”;
String[ ] name = { “kim”, “park”, “yi” };
-> 위코드와 아래 코드는 같은 표현!
-> 실제로 문자가 만들어지고 문자가 들어가는 게 아닌 문자의 주소가 배열안에 들어가진다!
예제) strArr에 가위바위보 배열을 삽입한 다음 난수생성해서 출력!
String[] strArr = {"가위", "바위", "보"}; for(int i =0; i
2차원 배열
- 테이블 형태의 데이터를 저장하기 위한 배열이고 1차원 배열이 여러 개 모인 게 2차원 배열
예) 표(한 행이 1차원 배열)하나가 2차원 배열 표(2차원배열)이 여러 개 모인 것이 3차원 배열
int[ ][ ] score = new int[4][3]; // 4행 3열의 2차원 배열(표)을 생성 -> 12개의 저장공간 필요
2차원 배열의 인덱스
int[ ][ ] score = new int[4][3]; // 4행 3열의 2차원 배열 score를 생성
score[0][0] = 100; // 배열 score의 1행 1열에 100을 저장
System.out.println(score[0][0]); // 배열 score의 1행 1열의 값을 출력
2차원 배열의 초기화
1) int[ ][ ] arr = new int[ ][ ]{ {1, 2, 3}, {4, 5, 6} }; -> 잘 쓰지는 않음
2) int[ ][ ] arr = { {1, 2, 3}, {4, 5, 6} }; // new int[ ]가 생략됨
3) int[ ][ ] arr = {
{1, 2, 3}, -> 1차원 배열(arr[0])
{4, 5, 6} -> 1차원 배열(arr[1])
};
-> 가능한 3번처럼(직관적이기 때문)
2차원 배열 예제
int[ ][ ] score = {
{100, 100, 100},
{20, 20, 20},
{30, 30, 30},
{40, 40, 40}
};
score 배열의 내부
예제1) 출력값나오게 작성
출력값(모든 배열을 다 더하기)
int[][] score = { {100, 100, 100}, {20, 20, 20}, {30, 30, 30}, {40, 40, 40} }; int sum = 0; for(int i=0; i 몇행? 4행! for(int j=0; j
예제2) 과목별 점수를 통해 총점, 평균을 구해 표형태로 출력하기
<출력값>
번호 국어 영어 수학 총점 평균
===========================
1 100 100 100 300 100.0
2 20 20 20 60 20.0
3 30 30 30 90 30.0
4 40 40 40 120 40.0
5 50 50 50 150 50.0
===========================
과목별총점: 240 240 240
int[][] score = { {100, 100, 100}, {20, 20, 20}, {30, 30, 30}, {40, 40, 40}, {50, 50, 50} }; // 과목별 총점 int korTotal = 0, engTotal = 0, mathTotal = 0; System.out.println("번호\t국어\t영어\t수학\t총점\t평균"); System.out.println("============================================="); for(int i = 0; i
String 클래스
1. String클래스는 char[ ]와 메서드(기능)를 결합한 것
string클래스 = char[ ] + 메서드(기능) ->char[ ] : 문자배열
2. String클래스는 내용을 변경할 수 없음(read only)
String a = "a";
String b = "b";
a = a + b;
System.out.println(a); // ab
String클래스의 주요 메서드
메서드 설명 char charAt(int index) 문자열에서 해당 위치 (index) 에 있는 문자 반환 int length( ) 문자열의 길이 반환 String substring (int from, int to) 문자열에서 해당 범위 (from~to) 의 문자열을 반환 (to 는 포함 xx) Boolean equals(Object obj) 문자열 내용이 같은 지 확인 . 같으면 true 다르면 false char[ ] toCharArray( ) 문자열을 문자배열 (char[ ]) 로 변환해서 반환
String -> char[ ]
1) charAt 지정한 문자를 출력
String str = “ABCDE”;
char ch = str.charAt(3); // 문자열 str의 4번째 문자 ‘D’를 ch에 저장
2) length 문자열의 길이를 출력
String str = “ABCDE”;
str.length( ) // 5
3) substring 문자열의 일부를 출력
String tmp = str.subString(1,3) // str에서 index범위 1~2문자들을 반환
System.out.println(tmp); // “BC”이 출력됨
더보기 더보기 //charAt String str = "ABCDE"; char ch = str.charAt(2); System.out.println(ch); //C //substring String str2 = str.substring(1,4); String str3 = str.substring(1); //(1, str.length()) System.out.println(str2); //BCD System.out.println(str3); //BCDE
Arrays 클래스
-> Arrays클래스는 배열을 사용하는데 유용한 메소드 제공!
1) 배열의 비교와 출력 – equals( ), toString( )
-> 1차원 배열일 때는 toString, 2차원이나 다차원 배열일 때는 deepToString
-> 1차원 배열일 때는 equals, 2차원이나 다차원 배열일 때는 deepEquals
int[] arr = {0,1,2,3,4}; int[][] arr2D = { {11, 12}, {21, 22} }; System.out.println(Arrays.toString(arr)); //[0, 1, 2, 3, 4] System.out.println(Arrays.deepToString(arr2D)); //[[11, 12], [21, 22]] String[][] str2D = new String[][] {{"aaa","bbb"},{"AAA","BBB"}}; String[][] str2D2 = new String[][] {{"aaa","bbb"},{"AAA","BBB"}}; System.out.println(Arrays.equals(str2D, str2D2)); //false 2차원 배열이어서 System.out.println(Arrays.deepEquals(str2D, str2D2)); //true
2) 배열의 복사 – copyOf( ), copyOfRange( )
int[] arr = {0,1,2,3,4}; //배열 arr에서 지정한 값 만큼 복사한다! int[] arr2 = Arrays.copyOf(arr, arr.length); // arr2 = [01234] int[] arr3 = Arrays.copyOf(arr, 3); // arr3 = [012] int[] arr4 = Arrays.copyOf(arr, 7); // arr4 = [0123400] -> 범위 벗어나면 0값으로 채움 //배열 arr에서 일정한 범위 까지 from ~ to int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // arr5 = [23] int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // arr6 = [0123400]
3) 배열의 정렬 – sort( )
int[] arr= {3, 2, 0, 1, 4}; Arrays.sort(arr); // 배열 arr을 정렬한다.(오름차순) System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4]
2021.12.30 - [멀티캠퍼스 풀스택 과정/Java의 정석] - 자바의 정석-7 배열
from http://everysmallstep.tistory.com/67 by ccl(A) rewrite - 2021-12-30 10:27:57