1. 문자열
문자열
- 문자열: 여러 문자들의 집합
- String s = "I like Java";
문자열의 기능 | 설명 | 예시 | 결과 |
length | 길이 | s.length(); I like Java(띄어쓰기 포함) |
11 |
toUpperCase | 대문자로 | s.toUpperCase(); | I LIKE JAVA |
toLowerCase | 소문자로 | s.toLowerCase(); | i like java |
contains | 포함 여부 | s.contains("Java"); I like Java |
True |
indexOf | 위치 정보 | s.indexOf("Java"); I like Java |
7 |
lastIndexOf | 마지막 위치 정보 | s.lastIndexOf("a"); I like Java |
10 |
startsWith | 문자열로 시작하는가? | s.startWith("I like"); I like Java |
True |
endsWith | 문자열로 끝나는가? | s.endsWith("."); I like Java |
False |
replace | 문자열 변환 | s.replace("like", "love"); | I love Java |
substring | 문자열 자르기 | s.substring(7); I like Java 7번 인덱스부터 끝까지 |
Java |
trim | 앞뒤 공백 제거 | s.trim(); | I like Java |
concat | 문자열 결합 | s.concat(" and Python"); | I like Java and Python |
문자열 비교
- 문자열 비교: 정수 비교와는 다른 방식으로 해야 오류가 안 남
- 문자열 비교 2: new를 써서 변수를 선언하면 s1과 s2가 각각 다른 곳에 저장한 Java를 참조하기에 s1 == s2는 False
- equals: 문자열 내용이 같은지 비교할 수 있는 함수
// 정수 비교
int num1 = 3;
int num2 = 3;
System.out.println(num1 == num2); // True
// 문자열 비교 1
String s1 = "Java";
String s2 = "Java";
System.out.println(s1 == s2); // True
// 문자열 비교 2
String s1 = new String("Java");
String s2 = new String("Java");
System.out.println(s1 == s2); // False
// 문자열 비교 3
String s1 = new String("Java");
String s2 = new String("Java");
System.out.println(s1.equals(s2)); // True
특수 문자
- 특수 문자: 특별한 기능을 수행하는 문자
특수 문자의 종류 | 설명 | 예시 | 결과 |
\n | 줄 바꿈 | System.out.println("A\nB"); | A B |
\t | 탭 | System.out.println("A\tB"); | A B |
\\ | 역슬래시 | System.out.println("C:\\Java"); | C:\Java |
\" | 큰 따옴표 | System.out.println("A\"B\"C"); | A"B"C |
\' | 작은 따옴표 | System.out.println("A\'B\'C"); | A'B'C |
2. 제어문
If & Else
- If: 조건에 따른 분기
- Else: 어떤 조건을 만족하지 않는 경우 실행
// 수행할 명령문이 한 줄일 때
if (조건)
명령문
else
명령문
// 수행할 명령문이 여러 줄일 때
if (조건) {
명령문1...
} else {
명령문2...
}
// 예제
int num = 3;
if (num>0 && num<5)
System.out.println("num은 0보다 크고 5보다 작아요");
else
System.out.println("num은 0보다 작거나 5보다 커요");
if (num>0 || num<5)
System.out.println("num은 0보다 크거나 5보다 작아요");
Else If
- Else If: If문에서 다른 조건을 추가하기 위함, 여러 번 사용 가능
- Else: 사용하지 않거나, 마지막에 한번만 사용함
// 조건1을 만족하지 않는 경우, 조건2를 만족하는지 확인(즉, 분기 추가)
if (조건1)
명령문
else if (조건2)
명령문;
// 명령문이 여러 줄일 때는 중괄호 속에 명령문을 넣어야 함
if (조건1) {
명령문...
} else if (조건2) {
명령문...
}
// 예제
int num = 3;
if (num < 3)
System.out.println("num은 3보다 작아요");
else if (num > 3)
System.out.println("num은 3보다 커요");
else
System.out.println("num은 3이에요");
Switch Case
- Switch Case: 케이스(경우)에 따른 분기
- break: 케이스문을 수행한 이후에는 빠져나오도록, 생략 가능
- default: 기본 값, 생략 가능
switch (조건) {
case 값1: 명령문
break;
case 값2: 명령문
break;
...
default: 명령문 // 모든 case에 해당하지 않을 때 실행되는 기본 값
}
// 예제
int menu = 2; // 게임 메뉴: 시작(1), 설정(2)
switch (menu) {
case 1: System.out.println("시작");
break;
case 2: System.out.println("설정");
break;
default: System.out.println("잘못된 메뉴");
}
For
- For: 반복문
- 변수선언: 정수형 변수 i를 선언 및 0으로 초기화
- 조건: i가 5보다 작다는 조건을 만족하는 동안 반복문 내 명령문 실행
- 증감: 반복 회차가 끝나고 나서 i 값을 1 증가
// 명령문이 한 줄인 경우
for (변수선언; 조건; 증감) // 변수, 조건을 만족하는 동안 명령문 실행, 매 회차마다 어떠한 값을 증가 or 감소
명령문;
// 명령문이 여러 줄인 경우
for (변수선언; 조건; 증감) {
명령문1
명령문2
...
}
// 예제
for (int i = 0; i < 5, i++) {
System.out.println("안녕?");
}
/* 실행결과:
안녕?
안녕?
안녕?
안녕?
안녕?
*/
While
- While: 다른 형태의 반복문
- 조건: i가 5보다 작다는 조건을 만족하는 동안 반복문 내 명령문 실행
- 변수선언: For문과 다르게 선언이 필요한 경우, While문 밖에 정수형 변수 i를 선언 및 초기화
- 증감: i의 값을 증가
// 조건이 하나일 때
while (조건)
명령문;
// 조건이 여러 개일 때
while (조건) {
명령문1
명령문2
...
}
// 예제
int i = 0;
while (i < 5) {
System.out.println("안녕?");
i++;
}
/* 실행결과:
안녕?
안녕?
안녕?
안녕?
안녕?
*/
Do While
- Do While: 또 다른 형태의 반복문
- While vs Do While 차이점: Do While은 한 번은 무조건 실행
// do while 명령문 - 1개일 때
do
명령문
while (조건);
// do while 명령문 - 2개 이상
do {
명령문1,
명령문2
...
} while (조건);
이중 반복문
- 이중 반복문: 반복문의 중첩
- 첫번째 for문: i가 0, 1일때 총 2회에 걸쳐 명령문 반복 실행
- 두번째 for문: j가 0, 1, 2일때 총 3회에 걸쳐 명령문 반복 실행
- 2회 * 3회 = 6회
for (int i = 0; i<2; i++) {
for (int j = 0; j<3; j++) {
System.out.println("안녕?");
}
}
/* 실행결과:
안녕?
안녕?
안녕?
안녕?
안녕?
안녕?
*/
Break
- Break: 반복문 탈출
for (int i = 0; i < 5; i++) {
if (i == 3) // i가 3일때 break문을 실행하여 반복문 탈출
break;
System.out.println("안녕?");
}
/* 실행결과:
안녕?
안녕?
안녕?
*/
Continue
- Continue: 반복문 건너뛰기
for (int i = 0; i < 5; i++) {
if (i == 2) // i가 2일 때 continue문을 실행하여 다음 회차로 건너뛰기
continue;
System.out.println("안녕?");
}
/* 실행결과:
안녕?
안녕?
안녕?
안녕?
*/
3. 배열
배열
- 배열: 같은 자료형의 값 여러 개를 저장하는 연속된 공간
- 자료형[] 변수명 = new 자료형[크기 or 길이];
- 자료형 변수명[] = new 자료형[크기 or 길이];
- 자료형 혹은 변수명 뒤에 [] 대괄호를 쓰면 됨
- int[] numbers = new int[5];
- int numbers[] = new int[5];
- String[] names = new String[3];
- String names[] = new String[3];
- 변수명[인덱스] = 값;
- 배열의 특정 위치에 값을 넣는 것
- int[] numbers = new int[5]; // 인덱스: 0 1 2 3 4
- numbers[0] = 1; // 인덱스는 항상 0부터 시작함
- numbers[1] = 5;
- numbers[2] = 10;
- ...
- 자료형[] 변수명 = new 자료형[] {값1, 값2, ...};
- 자료형[] 변수명 =
new 자료형[]{값1, 값2, ...}; (생략 가능)
- 배열을 만들면서 동시에 값을 초기화 하는 방법
- new 자료형 뒤 [] 대괄호에 따로 크기를 명시하지 않음
- why? {} 안의 값이 두 개라면 2, 세 개라면 3이 될 것이기 때문
- int[] numbers = new int[] {1, 2, 3, 4, 5};
- int[] numbers = {1, 2, 3, 4, 5};
- String names[] = new String[] {"A", "B", "C"};
- String names[] = {"A", "B", "C"};
배열 순회
- 배열 순회: 반복문을 이용하여 배열의 각 요소에 접근하는 것
// 배열 순회1
for (int i = 0; i < 배열.length; i++) {
... // 배열[i]
}
// 예제1
int[] numbers = {1,2,3,4,5};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
/* 실행결과:
1
2
3
4
5
*/
// 배열 순회2
for (int i: numbers) {
... // 배열 i
}
// 예제2
for (int i: numbers) {
System.out.println(i);
}
/* 실행결과:
1
2
3
4
5
*/
다차원 배열
- 다차원 배열: 2차원 이상의 배열
- 1차원 배열: 변수명[인덱스] = 값; (가로로 늘어나는 하나의 선 형태)
1 | 2 | 3 | 4 | 5 |
- 2차원 배열: 가로 x 세로가 더해진 면의 형태
- 자료형[][] 변수명 = new 자료형[세로][가로];
- int[][] numbers = new int[2][5];
- numbers[0][2] = 3
(0, 0) | (0, 1) | (0, 2) 3 | (0, 3) | (0, 4) |
(1, 0) | (1, 1) | (1, 2) | (1, 3) | (1, 4) |
- 배열 선언과 동시에 값 초기화 가능
int[][] numbers = new int[][] {
{1,2,3,4,5},
{6,7,8,9,10}
};
1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 |
- 3차원 배열: 가로 x 세로 x 높이가 더해진 공간의 형태
다차원 배열 순회
- 다차원 배열 순회
- 세로, 가로 크기를 숫자로 직접적으로 적기 힘들다면
- numbers.length = 세로 크기
- numbers[i].length = 가로 크기
가 | 로 | 크 | 기 | ||
세 | 1 | 2 | 3 | 4 | 5 |
로 | 6 | 7 | 8 | 9 | 10 |
// 다차원 배열 순회
for (int i = 0; i < 세로; i++) {
for (int j = 0; j < 가로; j++) {
... // 배열[i][j]
}
}
// 예제1 (2차원 배열)
int[][] numbers = new int[][] {
{1,2,3,4,5},
{6,7,8,9,10}
};
for (int i = 0; i < 2; i++) { //세로
for (int j = 0; j < 5; j++) { //가로
...
}
}
// 예제2 (2차원 배열)
int[][] numbers = new int[][] {
{1,2,3,4,5},
{6,7,8,9,10}
};
for (int i = 0; i < numbers.length; i++) { //세로
for (int j = 0; j < numbers[i].length; j++) { //가로
...
}
}
4. 아스키 코드
아스키 코드
- 아스키 코드: (ANSI) 정보 교환을 위한 미국 표준 코드
- 48: 숫자 0
- 65: 알파벳 대문자 A
- 97: 알파벳 소문자 a
참고 영상: 나도코딩 - 자바 무료 강의 2시간 완성(1분 자바)
https://youtu.be/DNCBaeCoMug?si=VM02QD9igeT561pp
반응형