java day5
배열(Array) | String 클래스 |
배열(Array)
- 변수는 한 개의 데이터만 저장할 수 있기 때문에 데이터의 수가 많아지면 그만큼 많은 변수가 필요
- 동일한 데이터 타입의 변수를 연속적으로 생성
- 배열의 선언
데이터타입[] 배열명;
예) int[] num;
- 배열의 메모리 할당
배열명 = new 데이터타입[요소의 개수];
예) num = new int[3];
- 배열의 초기화
예) num[0]=10;
num[1]=20;
num[2]=30;
int[] arr = new int[4]; // 한번에 작성 가능.
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]); // 값을 할당 받지않으면 초기값0 출력
실행결과
10
20
30
0
2차원 배열
- 값이 행과 열로 구성된 배열
데이터 타입[][] 배열명 = new 데이터타입[행요소개수][열요소개수];
예) int[][] num = new int[2][3];
열
행 [0,0] [0,1] [0,2]
[1,0] [1,1] [1,0]
- 배열의 값을 미리 지정하는 방법
1차원)
int[] num = new int[5];
num[0] = 10;
num[1] = 20;
num[2] = 30;
num[3] = 40;
num[4] = 50;
== int[] num = {10,20,30,40,50};
2차원)
int[][] num = new int[2][3];
num[0][0] = 10;
num[0][1] = 20;
...
num[1][2] = 60;
== int[][] num = {{10, 20, 30},{40, 50, 60}};
향상된 for문
for(변수선언 : 배열){
배열의 요소만큼 반복할 문장;
}
예)
args = {"김사과", "반하나", "오렌지"};
for(String s : args){
System.out,println(s)
}
String 클래스
- 자바의 문자열을 저장하고 다룰 수 있는 클래스
String 변수명 = new String("저장할 값");
예) String str = new String("apple");
String 변수명 = 값; // 리터럴 특징
예) String str = "apple";
- String은 불변 객체임으로 str이 다른 값으로 바꾸고자한다면, 기존 값을 지우는 것이 아닌 새로운 값을 생성하여 그쪽의 방향을 가르킴
String str1 = new String("apple");
String str2 = new String("apple");
String str3 = "apple"; // 리터럴 표기법 : 값을 직접 대입하는 방법
String str4 = "apple";
System.out.println(str1 == str2); // false : 주소값을 비교, 다른 객체를 생성한 것.
System.out.println(str1.equals(str2)); // true : 값(문자 그 자체)을 비교
System.out.println(str3 == str4);
// true : 리터럴로 생성된 String은 "apple"이라는 같은 객체를 참조
System.out.println(str3.equals(str4)); //true
- String 클래스의 여러 종류
String str1 = new String("Java");
System.out.println(str1);// Java
String str2 = "Programming";
System.out.println(str2); // Programming
// concat() : 문자열과 문자열을 연결
System.out.println(str1.concat(str2)); //JavaProgramming
// ✔indexof : 원하는 문자열 혹은 문자를 찾아 해당하는 문자의 index를 리턴
System.out.println(str2.indexOf("p")); // -1 : 찾지못함
System.out.println(str2.indexOf("P")); // 0 : 인덱스 0번, 문자열
System.out.println(str2.indexOf('P')); // 0 : 인덱스 0번, 문자
System.out.println(str2.indexOf("gra")); // 3 : 문자열의 시작 인덱스 3번
// trim() : 문자열의 앞뒤 공백을 제거
String str3 = new String(" 자바 ");
System.out.println(str3 + "@"); // 자바 @
System.out.println(str3.trim() + "@"); // 자바@ : 앞뒤 공백 제거
// toLowerCase(), toUpperCase() : 문자를 소문자, 대문자로 변환
System.out.println(str2.toLowerCase()); // programming
System.out.println(str2.toUpperCase()); // PROGRAMMING
// length() : 문자열의 길이를 반환
System.out.println(str2.length()); // 11
// ✔substring() : 원하는 문자열을 추출
System.out.println(str2.substring(3)); // gramming : 문자열의 index 3부터 끝까지 추출
System.out.println(str2.substring(3,6)); // gra : 문자열의 index 3부터 6이 되기 전까지 추출
// ✔문자열을 숫자로 변환 : Integer.parseInt()
String str4 = "100";
int i = 200;
int result = Integer.parseInt(str4) + i;
System.out.println(result); // 300
main 메소드
- 자바 애플리케이션이 실행될때 가장 먼저 실행되며 프로그램이 구동되는 메소드
- String[] args는 매개변수로 동작