자바 기술의 응용
int[][] 배열이름 = new int[행크기][열크기]
- 테이블 형태의 데이터를 저장하기 위한 배열
- 1차원 배열의 배열!
int[][] arr = { {1, 2, 3}, {4, 5, 6} };
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
};
arr.length
는?arr
✨의 길이를 말하는 것0x100
번지의 요소 개수 = arr[0], arr[1]
-> 2
arr[0].length
는?arr[0]
✨의 길이를 말하는 것0x200
번지의 요소 개수 = arr[0][0], arr[0][1], arr[0][2]
-> 3
public class Ex5_8 {
public static void main(String[] args) {
int[][] score = {
{100, 100, 100},
{20, 20, 20},
{30, 30, 30},
{40, 40, 40}
};
int sum = 0;
for(int i=0; i<score.length; i++) { //4행, 0~3
for(int j=0; j<score[i].length; j++) { //3열, 0~2
System.out.printf("score[%d][%d] = %d%n", i, j, score[i][j]);
sum += score[i][j];
}
}
System.out.println("총합 = "+sum);
}
}
score[0][0] = 100
score[0][1] = 100
score[0][2] = 100
score[1][0] = 20
score[1][1] = 20
score[1][2] = 20
score[2][0] = 30
score[2][1] = 30
score[2][2] = 30
score[3][0] = 40
score[3][1] = 40
score[3][2] = 40
총합 = 570
import java.util.Scanner;
public class Ex5_10 {
public static void main(String[] args) {
String[][] words = {
{"chair", "의자"},
{"computer", "컴퓨터"},
{"integer", "정수"}
};
Scanner scan = new Scanner(System.in);
for(int i=0; i<words.length; i++) {
System.out.printf("Q%d. %s의 뜻은?", i+1, words[i][0]);
String answer = scan.nextLine();
if(answer.equals(words[i][1])) {
System.out.println("정답입니다.");
} else {
System.out.println("틀렸습니다. 정답은 "+words[i][1]+"입니다.");
}
}
scan.close();
}
}
Q1. chair의 뜻은?의자
정답입니다.
Q2. computer의 뜻은?ㅁㄴㅇㄹ
틀렸습니다. 정답은 컴퓨터입니다.
Q3. integer의 뜻은???
틀렸습니다. 정답은 정수입니다.
public class Main {
public static void main(String[] args) {
// 1~9인 정수를 랜덤하게 뽑아서 2차원배열로 출력하기
int N = 20;
int [][] arr = new int[N][N];
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
arr[i][j] = (int) (Math.random() * 10);
}
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
2 6 1 1 0 2 5 6 6 5 5 5 9 8 0 5 6 1 1 2
7 4 6 0 8 3 7 3 8 4 3 0 8 5 4 1 5 3 4 6
6 1 6 7 9 9 7 0 2 8 8 4 3 4 6 1 1 6 5 6
6 8 9 3 8 2 4 2 7 7 2 2 5 1 9 8 8 2 1 4
0 9 5 8 0 4 8 0 4 0 7 5 0 1 5 2 6 2 1 6
2 5 9 3 5 2 8 6 2 3 5 3 6 5 1 5 2 7 0 1
5 0 3 4 3 0 5 1 5 8 3 3 8 7 1 3 4 5 6 7
3 0 8 7 9 9 4 2 9 5 8 4 8 2 8 7 8 1 8 5
9 9 6 6 0 1 0 2 2 8 9 9 2 3 8 2 0 6 1 8
9 1 0 9 5 9 9 0 1 3 7 0 3 4 2 2 1 2 6 5
5 2 5 1 2 4 3 0 3 8 5 5 4 9 9 2 7 9 2 3
6 9 4 5 5 4 0 9 0 6 3 5 8 0 2 4 5 1 2 4
2 8 7 6 1 7 1 4 3 7 1 0 2 9 7 4 8 5 7 9
8 2 4 8 8 7 4 4 4 3 4 9 1 2 6 3 3 5 0 2
1 0 0 7 6 0 9 8 4 0 1 3 0 6 3 9 2 8 2 7
8 0 9 8 8 5 8 9 1 2 4 4 8 3 0 6 3 2 2 1
5 8 4 2 1 3 9 8 1 9 7 7 4 9 3 6 3 2 3 9
8 2 2 7 5 9 1 3 5 2 6 2 4 5 3 8 7 7 5 6
1 8 3 9 6 6 8 8 5 4 9 9 0 0 0 3 1 0 0 6
3 1 2 3 4 5 1 0 1 1 2 4 4 0 1 7 1 1 6 2
String
클래스char[]
와 메소드(기능)를 결합한 것
내용 변경X, READ ONLY
String a = "a";
String b = "b";
String a = "a";
String b = "b";
a = a+b;
0x100
번지가 "a"
->"ab"
로 변하는 게 아니라ch c = 문자열.charAt(인덱스);
int l = 문자열.length();
String s = 문자열.substring(시작인덱스, 끝인덱스);
boolean tf = 문자열a.equals(문자열b);
char[] ch = 문자열.toCharArray();
Arrays
클래스boolean tf = Arrays.equals(배열1, 배열2);
boolean tf = Arrays.deepEquals(배열1, 배열2);
System.out.println(Arrays.toString(배열));
System.out.println(Arrays.toString(배열));
int[] 배열b = Arrays.copyOf(배열a, 정수);
- ✨전체 복사
-> 개수 =arr1.length()
- 기존 문자열을 넘어가는 개수 ->
0
으로 채움
int[] arr1 = {0, 1, 2, 3, 4};
int[] arr2 = Arrays.copyOf(arr1, arr1.length());
// arr2 = {0, 1, 2, 3, 4};
int[] arr3 = Arrays.copyOf(arr1, 3);
// arr3 = {0, 1, 2};
int[] arr4 = Arrays.copyOf(arr1, 7);
// arr4 = {0, 1, 2, 3, 4, 0, 0};
int[] 배열b = Arrays.copyOfRange(배열a, 시작인덱스, 끝인덱스);
int[] arr1 = {0, 1, 2, 3, 4};
int[] arr5 = Arrays.copyOfRange(arr1, 2, 4);
//인덱스2 ~ 인덱스3
// arr5 = {2, 3};
int[] arr6 = Arrays.copyOfRange(arr1, 0, 7);
//인덱스0 ~ 인덱스6
//넘어간 만큼 0
// arr6 = {0, 1, 2, 3, 4, 0, 0};
Arrays.sort(배열)
int[] arr = {3, 6, 1, 0, 2};
Arrays.sort(arr);
System.out.println(Arrays.toString());
//{0, 1, 2, 3, 6}