들어가기전에!
1. 배열(Array)이란?
배열(Array)은 동일한 데이터 타입의 값을 여러 개 저장할 수 있는 자료구조입니다. 예를 들어, 10명의 학생 점수를 저장할 때 배열을 사용하면 하나의 변수로 모든 점수를 관리할 수 있어 편리합니다.
1.1 배열 선언과 초기화
자바에서 배열을 선언하는 기본 문법은 다음과 같습니다.
데이터타입[] 배열이름 = new 데이터타입[크기];
예를 들어, 5개의 정수를 저장할 배열을 선언하고 초기화하는 방법은 다음과 같습니다.
int[] scores = new int[5];
💡 배열의 인덱스는 0부터 시작하므로 scores[0]이 첫 번째 요소, scores[4]가 마지막 요소입니다.
1.2 배열 값 할당 및 접근
배열의 각 요소에 값을 넣고 접근하는 방법은 다음과 같습니다.
scores[0] = 90; // 첫 번째 요소에 90 저장
scores[1] = 85; // 두 번째 요소에 85 저장
System.out.println(scores[0]); // 첫 번째 요소 출력
1.3 배열 초기화와 활용 예제
배열을 생성과 동시에 초기화할 수도 있습니다.
int[] numbers = {10, 20, 30, 40, 50};
예제: 5명의 학생 점수를 입력받아 평균 점수 구하기
import java.util.Scanner;
public class ArrayExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] scores = new int[5];
int sum = 0;
for (int i = 0; i < scores.length; i++) {
System.out.print("학생 " + (i + 1) + "의 점수를 입력하세요: ");
scores[i] = scanner.nextInt();
sum += scores[i];
}
double average = (double) sum / scores.length;
System.out.println("학생들의 평균 점수: " + average);
scanner.close();
}
}
실행 결과 예시
학생 1의 점수를 입력하세요: 85
학생 2의 점수를 입력하세요: 90
학생 3의 점수를 입력하세요: 78
학생 4의 점수를 입력하세요: 92
학생 5의 점수를 입력하세요: 88
학생들의 평균 점수: 86.6
2. 2차원 배열
2차원 배열은 행과 열로 이루어진 데이터를 저장할 수 있는 구조입니다. 예를 들어, 학생들의 여러 과목 점수를 저장할 때 유용합니다.
2.1 2차원 배열 선언과 초기화
int[][] matrix = new int[3][3];
이렇게 선언하면 3x3 크기의 2차원 배열이 생성되며, 각 요소는 matrix[0][0], matrix[0][1] 등으로 접근할 수 있습니다.
2.2 2차원 배열 활용 예제
예제: 3명의 학생, 2과목 점수를 입력받아 총점과 평균 점수 구하기
import java.util.Scanner;
public class TwoDimensionalArrayExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] scores = new int[3][2];
int sum = 0;
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores[i].length; j++) {
System.out.print("학생 " + (i + 1) + "의 과목 " + (j + 1) + " 점수를 입력하세요: ");
scores[i][j] = scanner.nextInt();
sum += scores[i][j];
}
}
double average = (double) sum / (scores.length * scores[0].length);
System.out.println("전체 학생들의 평균 점수: " + average);
scanner.close();
}
}
실행 결과 예시
학생 1의 과목 1 점수를 입력하세요: 80
학생 1의 과목 2 점수를 입력하세요: 85
학생 2의 과목 1 점수를 입력하세요: 75
학생 2의 과목 2 점수를 입력하세요: 90
학생 3의 과목 1 점수를 입력하세요: 88
학생 3의 과목 2 점수를 입력하세요: 92
전체 학생들의 평균 점수: 85.0
3. 문자열(String) 다루기
**문자열(String)**은 문자의 집합으로, 자바에서 문자열을 다루기 위해 String 클래스를 사용합니다. 문자열은 문자 배열과는 다르게 여러 유용한 메서드를 제공합니다.
3.1 문자열 선언과 초기화
문자열을 선언하는 방법은 다음과 같습니다.
String name = "Hello, Java!";
3.2 주요 String 메서드
- length(): 문자열의 길이를 반환합니다.
- charAt(index): 특정 인덱스의 문자를 반환합니다.
- substring(start, end): 문자열의 특정 부분을 잘라냅니다.
- equals(otherString): 문자열이 동일한지 비교합니다.
예제: 문자열의 각 문자 출력하기
public class StringExample {
public static void main(String[] args) {
String message = "Hello, Java!";
System.out.println("문자열 길이: " + message.length());
for (int i = 0; i < message.length(); i++) {
System.out.println("문자 " + (i + 1) + ": " + message.charAt(i));
}
}
}
문자열 길이: 12
문자 1: H
문자 2: e
문자 3: l
문자 4: l
문자 5: o
문자 6: ,
문자 7:
문자 8: J
문자 9: a
문자 10: v
문자 11: a
문자 12: !
4. 문자열 조작 예제 - 회문 검사기 만들기
문자열이 앞뒤가 똑같은지 검사하는 회문(Palindrome) 프로그램을 만들어보겠습니다.
*회문: 앞에서부터 읽으나 뒤에서부터 읽으나 동일한 문자열이나 숫자
- 단어: level, radar, mom, racecar
- 숫자: 121, 1331, 12321
예제: 회문 검사기
import java.util.Scanner;
public class PalindromeChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("검사할 단어를 입력하세요: ");
String word = scanner.nextLine();
String reversed = new StringBuilder(word).reverse().toString();
if (word.equals(reversed)) {
System.out.println("입력한 단어는 회문입니다.");
} else {
System.out.println("입력한 단어는 회문이 아닙니다.");
}
scanner.close();
}
}
실행 결과 예시
검사할 단어를 입력하세요: level
입력한 단어는 회문입니다.
'IT개발및프로그래밍 > 자바' 카테고리의 다른 글
[자바 기초 #4] 객체지향 프로그래밍(OOP) 기초 - 클래스와 객체 (1) | 2024.11.17 |
---|---|
자바 객체 생성의 핵심: new 키워드 이해하기 (3) | 2024.11.11 |
리터럴(Literal)이란? 프로그래밍에서 리터럴의 역할과 종류, 그리고 값과의 차이점까지! (0) | 2024.11.11 |
[자바 기초 #2] 제어문과 반복문 - 프로그램의 흐름 제어하기 (1) | 2024.11.08 |
[자바 기초 #1] 자바로 시작하는 프로그래밍 기초 (1) | 2024.11.08 |