String[] str = "hello";
str.charAt(1); // e
String str1 = "hello";
String str2 = "bye";
str1.equal(str2) // str1 문자열이 str2와 같은지 비교
int[] arr = {1, 2, 3};
int[][] scores = {{1, 2}, {3, 4}};
arr[0]; // 1
✅ 1차원 배열일 경우
int[] arr = new int[3]; // int[0] ~ int[2] 까지 값이 저장될 수 있는 공간이 생김
✅ 다차원 배열일 경우
int[][] scores = new int[2][];
scores[0] = new int[2]; // scores[0][1] ~ scores[0][2] 를 가짐
scores[1] = new int[3]; // scores[0][1] ~ scores[0][3] 를 가짐
str.length;
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
- src = 원본 배열 srcPos = src에서 복사할 시작 인덱스
- dest = 저장할 배열 destPos = dest에 붙여넣을 시작 인덱스
- length = 복사할 개수
☞ "java class"로 프로그램을 실행하면 JVM은 길이가 0인 String 배열을 먼저 생성하고, main() 메소드를 호출할 때 매개값으로 전달한다.
String args[] = {}; // args는
public static void main (String[] args){ .. } // main()메소드 호출 시 전달됨
☞ 만약 class 뒤에 공백으로 구분된 문자열 목록을 주고 실행하면, 문자열 목록으로 구성된 String[] 배열이 생성되고 main() 메소드를 호출할 때 매개값으로 전달된다.
String args[] = {문자열1, 문자열2, 문자열3 ... }; // args는
public static void main (String[] args){ .. } // main()메소드 호출 시 전달됨
🤔 열거 타입 ?
= 한정된 값만을 갖는 데이터 타입
= 몇 개의 열거 상수 중에서 하나의 상수를 저장하는 데이터 타입
(1) 열거 타입 이름 정하고 소스파일 (.java) 생성
ex) Week.java
(2) 열거 타입 선언
이때, 열거 상수는 모두 대문자로 작성해야 한다 !
public enum 열거타입이름 { ... }
ex)
public enum Week {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, ... }
ex) Week today = Week.SUNDAY;
→ today 열거 변수에 열거 상수 SUNDAY를 저장= 열거 객체가 가지고 있는 문자열을 리턴한다.
ex)
Week today = Week.SUNDAY;
String name = today.name();
today가 참조하는 열거 객체에서 name() 메소드를 호출 → 문자열 얻어낸다.
name() 메소드는 열거 객체 내부의 문자열인 "SUNDAY"를 리턴 → name 변수에 저장한다.
= 전체 열거 객체 중 몇 번째 열거 객체인지 알려준다. (※ 0번째부터 시작)
ex)
Week today = Week.SUNDAY;
int ordinal = today.ordinal(); // 6
= 매개값으로 주어진 열거 객체를 기준으로 전후로 몇 번째 위치하는 지를 비교한다.
※ 매개값의 열거 객체보다 순번이 빠르다면 → 음수 / 늦으면 → 양수 리턴
ex)
Week day1 = Week.SUNDAY;
Week day2 = Week.WEDNESDAY;
int result1 = day1.compareTo(day2); // 2
int result2 = day2.compareTo(day1); // -2
= 매개값으로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체를 리턴한다.
ex)
Week weekDay = Week.valueOf("SATURDAY");
= 열거 타입의 모든 열거 객체들을 배열로 만들어 리턴한다.
ex)
Week[] days = Week.values();
for(Week day : days){
System.out.println(day); // 순번대로 객체 상수가 출력된다. ... MONDAY TUESDAY ...
}
[code]
public class test{
public enum Week{
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public static void main (String[] args){
//name 메소드
Week today = Week.SUNDAY;
String name = today.name();
System.out.println(name);
//ordinal 메소드
int ordinal = today.ordinal();
System.out.println(ordinal);
//compareTo 메소드
Week day1 = Week.MONDAY;
Week day2 = Week.WEDNESDAY;
int result1 = day1.compareTo(day2);
int result2 = day2.compareTo(day1);
System.out.println(result1);
System.out.println(result2);
//valueOf 메소드
if(args.length == 1){
String strDay = args[0];
Week weekDay = Week.valueOf(strDay);
if(weekDay == Week.SATURDAY || weekDay == Week.SUNDAY){
System.out.println("주말 이다 !");
} else {
System.out.println("평일 이다 ...");
}
}
//values() 메소드
Week[] days = Week.values();
for(Week day : days){
System.out.println(day);
}
}
}