배열 선언/초기화 연습
여러 형태의 배열 생성
public class ArrayPractice {
public static void main(String[] args) {
// 정수 배열을 선언·생성·초기화한다.
long[] positions = {140, 20, -530, 4, 57};
// 문자열 배열을 선언·생성·초기화한다.
String[] names;
names = new String[]{"Rian Johnson", "Daisy Ridley", "Chloe Grace Moretz"};
}
}배열 순회 연습
for, enhanced for 사용
public class ArrayPractice {
public static void main(String[] args) {
// 정수 배열을 선언·생성·초기화한다.
long[] positions = {140, 20, -530, 4, 57};
// 배열의 모든 요소를 순회하며 출력한다. (for 문)
for (int i = 0; i < positions.length; i += 1) {
System.out.printf("%d ", positions[i]); // 140 20 -530 4 57
}
// 배열의 모든 요소를 순회하며 출력한다. (향상된 for 문)
for (long p: positions) {
System.out.printf("%d ", p); // 140 20 -530 4 57
}
}
}문자열 처리 연습
문자열 결합/분할 예제 작성
public class StringPractice {
public static void main(String[] args) {
String raw = "Rian Johnson, Daisy Ridley, Chloe Grace Moretz, Oscar Isaac, Domhnall Gleeson, Johnson Rian";
// ', ' 구분자를 기준으로 문자열을 분할하여 문자열 배열을 얻는다.
String[] names = raw.split(", ");
// 문자열 배열의 각 요소를 결합하여 ' | '를 구분자로 한 단일 문자열을 생성하고 출력한다.
StringBuilder sb = new StringBuilder();
for (String name: names) {
sb.append(name);
sb.append(" | ");
}
String result = sb.toString();
System.out.println(result.substring(0, result.length() - 3));
// Rian Johnson | Daisy Ridley | Chloe Grace Moretz | Oscar Isaac | Domhnall Gleeson | Johnson Rian
}
}점수 입력 로직 구현, 통계 계산 로직 구현, 조건 통계 구현
설명
- 사용자 입력 → 배열 저장
- 합계/평균/최대/최소 계산
- 평균 이상/미만 카운트
package mission03;
import java.util.ArrayList;
import java.util.Scanner;
public class ScoreManager {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 학생들의 점수를 ','로 구분한 문자열을 입력받아 ArrayList에 저장한다.
System.out.print("학생들의 점수를 쉼표로 구분해 입력하세요 (예: 100,24,72): ");
String raw = sc.next();
ArrayList<Long> scores = new ArrayList<>();
for (String score : raw.split(",")) {
scores.add(Long.parseLong(score));
}
// 저장된 점수에 대한 합계, 평균, 최댓값, 최솟값을 구하고 출력한다.
long sum = 0;
long maximum = scores.get(0);
long minimum = scores.get(0);
for (long score : scores) {
sum += score;
if (maximum < score) {
maximum = score;
}
if (minimum > score) {
minimum = score;
}
}
long average = sum / scores.size();
System.out.printf("합계: %d\n", sum);
System.out.printf("평균: %d\n", average);
System.out.printf("최댓값: %d\n", maximum);
System.out.printf("최솟값: %d\n", minimum);
// 평균 이상/미만인 학생 수를 계산하여 출력한다.
long overAverageCount = 0L;
long underAverageCount = 0L;
for (long score : scores) {
if (score >= average) {
overAverageCount += 1;
} else {
underAverageCount += 1;
}
}
System.out.printf("평균 이상 학생 수: %d\n", overAverageCount);
System.out.printf("평균 미만 학생 수: %d\n", underAverageCount);
sc.close();
}
}