자바의 배열 - Array
자바의 배열 - Array
1. 배열 - Array
타입[] 변수 = 값또는타입 변수[] = 값으로 선언한다.
- 보통 전자를 사용함. ex)
int[] a = {1,2,3,4,5}ora = new int[6]
1
2
3
4
5
6
7
8
public class ArrayMain1 {
public static void main(String[] args) {
//선언
int[] arrSubject;
// 배열에 크기 할당 (메모리에 미리 크기 할당)
arrSubject = new int[7];
}
}
배열로 선언된 변수에는 자동적으로 초기값이 들어간다.
정수는0, 실수는0.0, char는' '(공백), 객체는null
1
2
3
for(int i = 0; i<arrSubjects.length; i++) {
System.out.println(i+1+"번째 출력 => "+arrSubjects[i]);
}
왼쪽 부터 정수, 실수, 객체, char
- 응용 배열을 사용하여 총점과 평균 값 구하기
for(변수선언 : 배열){ ... }을 사용하여 배열에 효율적으로 반복문을 사용할 수 있다.
new int[]은 생략 가능하다.- 대입되는 배열의 값을 기준으로 배열의 크기가 자동 지정된다.
- 아래 코드는
int[7]이다.- 즉 사용가능한 index 값은
0 ~ 6까지 이고scores[7] = 100
이런식으로 사용할시 예외ArrayIndexOutOfBoundsException발생한다.
1
2
3
4
5
6
7
int[] scores = {90,85,75,50,95,100,70};
int sum = 0;
for(int score : scores) {
sum += score;
}
System.out.println("총점 => "+sum + " 평균 => " + Math.round((double)sum/scores.length*10)/10d);
2. 객체 배열과 for문 활용
for문을 활용하여 객체 배열 돌리기
- 스캐너에 입력된 값을 토대로 회원 인스턴스를 생성한다.
- 회원 인스턴스를 배열에 넣는다.
- 회원배열은 최대 3개까지 생성 할수 있다.
- 아이디는 중복 될 수 없다.
- 비밀번호는 영문자(대문자 or 소문자)와 숫자, 특수문자의 조합
8 ~ 15 글자- 이름은 2 ~ 6 글자 한글로만 작성 가능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
public class MemberMain {
private static MyMember[] memberArr = new MyMember[3];
private static void addMember(MyMember[] memberArr, MyMember newMember) {
for (int i = 0; i < memberArr.length; i++) {
if (memberArr[i] == null) {
memberArr[i] = newMember;
System.out.println(newMember.getName() + "를 " + i+"번째 인덱스에 가입 시킴");
return;
}
}
System.out.println(newMember.getName()+"를 추가하지 못했어 회원 꽉참");
}
//중복확인
private static boolean duplicationId(String id) {
for(MyMember m : memberArr)
if(m!=null)
if(m.getNo().equals(id))
return true;
return false;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String userSelect = "";
while( !(userSelect.equals("3")) ) {
System.out.println("\n============ >> 메뉴 << ============\n"
+ "1.회원가입 2.모든회원조회 3.프로그램종료\n"
+ "=====================================");
System.out.print("▷ 선택하세요 => ");
userSelect = sc.nextLine().trim();
// trim 으로 앞 뒤 모든 공백제거 ⬆️ (중앙에 낀 공백은 제거 되지 않는다.)
switch(userSelect) {
case "1" :
String id = null;
String pw = null;
String name = null;
while(true) {
System.out.print("\n✔️아이디 => ");
id = sc.nextLine();
if(id.isBlank()) {
System.out.println(">>[경고] 아이디값을 공백이 아닌 다른 값으로 입력하세요\n");
continue;
}else if(duplicationId(id)) {
System.out.println(">>[경고] 아이디값 중복 다른 아이디로 설정하세요\n");
continue;
}
break;
}
while(true) {
System.out.print("\n✔️비밀번호 => ");
pw = sc.nextLine();
if(!MyUtil.passwordVerify(pw)) {
System.out.println(">>[경고] 비밀번호는 8글자 이상 15글자 이하의 영문 대,소문자 및 숫자와 특수문자가 혼합되어야만 합니다.\n");
continue;
}
break;
}
while(true) {
System.out.print("\n✔️이름 => ");
name = sc.nextLine();
if(!MyUtil.nameVerify(name)) {
System.out.println(">>[경고]성명은 공백이 없는 한글로만 2글자 이상 6글자 이하로 입력하세요!! \n");
continue;
}
break;
}
MyMember newMember = MyMember.of(name,id, pw);
addMember(memberArr, newMember);
break;
case "2" :
for(int i=0;i< memberArr.length;i++) {
if(memberArr[i] != null)
System.out.println(i+1+"번째 유저 => "+memberArr[i].getInfo());
}
break;
case "3" : break;
default :
System.out.println("\n\t다시 입력 하세요.");
break;
}
}
sc.close();
System.out.println("\n=================종료=================");
}
}
1
2
3
4
5
6
7
8
9
10
//MyUtil.class
public static boolean passwordVerify(String pw) {
return pw.matches("^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!@#$%^&*])[a-zA-Z\\d!@#$%^&*]{8,15}$");
}
public static boolean nameVerify(String name) {
if(name.length()<2||name.length()>6) return false;
for(char i : name.toCharArray())
if(!(i>='가'&& i<='힣')) return false;
return true;
}
🔄 while문 활용 팁 🔄
isEmpty와 isBlank
메서드 설명 isEmpty()문자열의 길이가 0인지 확인 ( ""이면true)isBlank()공백 문자(공백, 탭, 개행)만 포함되었는지 확인 아래 코드 참고
1 2 3 4 5 6 7 8 String emptyStr = ""; String blankStr = " "; System.out.println(emptyStr.isEmpty()); // true System.out.println(emptyStr.isBlank()); // true System.out.println(blankStr.isEmpty()); // false System.out.println(blankStr.isBlank()); // true
null인 경우엔 두 메서드 다NullPointerException이 발생한다.
이 작성글은 저작권자의 CC BY 4.0 라이센스를 따릅니다.







