JAVA 입출력(IO)
입출력이란 `입력` + `출력`의 줄임말. `Input` + `Output` 이라는 의미로 **IO** 라고 부르기도 한다.
JAVA 입출력(IO)
#01. 출력
1) 괄호안의 내용을 출력하고 줄바꿈 수행하기
println()
의 ln은 line의 줄임말
1
2
3
4
System.out.println("j");
System.out.println("a");
System.out.println("v");
System.out.println("a");
출력결과
1 2 3 4
j a v a
2) 아무런 내용도 출력하지 않고 줄바꿈만 수행
println()
에게 출력할 내용을 지정하지 않는다.
1
System.out.println();
3) 괄호안의 내용을 출력하고 줄바꿈 안하기
println()
이 아닌 print()
명령어 사용
1
2
3
4
System.out.print("j");
System.out.print("a");
System.out.print("v");
System.out.print("a");
출력결과
1
java
#02. 입력
키보드를 통해 사용자에게 어떤 내용을 입력받아서 변수에 저장 가능함.
이 기능은 명령프롬프트를 통해 실행한 경우에만 사용 가능하다.
1) 구현절차
클래스 정의 상단에 다음의 구문을 추가함
1
import java.util.Scanner;
메인 메서드 첫 라인에서 다음의 구문을 추가함
1
Scanner reader = new Scanner(System.in);
숫자값을 입력받고자 하는 경우
1
int input = reader.nextInt();
문자열을 입력받고자 하는 경우
1
String input = reader.nextLine();
사용 완료 후 입력기능 닫기
1
reader.close();
#03. 이스케이프 문자
출력시에 문자열에 포함시킬 수 없는 줄바꿈, 탭키 등을 처리하기 위한 특수문자.
글자 앞에 역슬래시(\
)를 적용하여 두 글자가 모여 한 글자로 인식된다.
이스케이프 문자 | 의미 |
---|---|
\n | 줄바꿈 |
\t | 탭키 |
\" | 쌍따옴표 |
\' | 홑따옴표 |
\\ | 역슬래시 자체 |
#04. 형식문자
문자열을 출력할 때 변수값이 적용될 수 있는 치환자.
1) 종류
형식문자 | 데이터 타입 | 의미 |
---|---|---|
%s | 문자열 | 문자열을 지정 |
%d | 정수 | 10진 정수로 표시 |
%f | 실수 | 실수형태의 10진수로 표시 무조건 소수점 6자리까지 표시. 그 이상 되는 자리수는 반올림 |
%g | 실수 | 실수형태의 소수점 10진수로 표시 소수점 4자리까지 표시. 그 이상 되는 자리는 반올림 처리 |
%% | 퍼센트 퍼센트를 표시 |
2) 형식문자를 포함하는 문자열 직접 출력하기
구문형식
1
System.out.printf(문자열, 변수1, 변수2 ... 변수3)
- 첫 번째 조건값으로 주어지는 문자열에는 형식문자가 포함되어야 한다.
- 두 번째 이후의 조건값들은 첫 번째 조건값인 문자열에 포함된 형식 문자들을 치환할 변수들이 순서대로 나열된다.
- 출력 후 자동 줄바꿈이 되지 않으므로 줄바꿈을 사용하기 위해서는
\n
을 활용하여 직접 처리해야 한다.
3) 형식문자를 포함하는 문자열을 통한 새로운 문자열 만들기
구문형식
1
String 변수이름 = String.format(문자열, 변수1, 변수2 ... 변수3)
- 첫 번째 조건값으로 주어지는 문자열에는 형식문자가 포함되어야 한다.
- 두 번째 이후의 조건값들은 첫 번째 조건값인 문자열에 포함된 형식 문자들을 치환할 변수들이 순서대로 나열된다.
4) 자릿수 지정
%
다음에 자릿수를 의미하는 숫자를 명시할 수 있다.
출력 되는 내용은 오른쪽에 정렬하고 남는 자리는 공백으로 채워진다.
만약 자릿수가 부족할 경우 원본 값이 그대로 출력 된다.
문자열의 자릿수 지정
%숫자s
형식으로 명시한다.- 치환할 문자열의 길이가 주어진 자릿수보다 짧을 경우 왼쪽부터 공백이 추가된다.
- 치환할 문자열의 길이가 주어진 자릿수보다 긴 경우 문자열이 그대로 출력된다.
정수의 자리수 지정
%숫자d
형식으로 명시한다.- 치환할 값의 길이가 주어진 자릿수보다 짧을 경우 왼쪽부터 공백이 추가된다.
- 치환할 값의 길이가 주어진 자릿수보다 긴 경우 문자열이 그대로 출력된다.
실수의 자릿수 지정
- 소수점을 포함하여 10자리를 만들기 위해 뒤에 0을 추가한다.
- 소수점도 자릿수에 포함됨에 주의한다.
빈 자리를 0으로 채우기
정수의 경우
- 빈 자리를 0으로 채우도록 지정할 수 있다.
%
다음에010
과 같은 형식으로 0을 먼저 명시하고 자리수를 지정한다.
실수의 경우
- 빈 자리를 0으로 채우도록 지정할 경우 소수점 뒤에 적용된다.
- 점(
.
)을 사용하면 소수점의 기본 자릿수를 변경할 수 있다.
#05. 실습예제
📒 Ex01_출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Ex01_출력 {
public static void main(String[] args) {
/** 1) 괄호안의 내용을 출력하고 줄바꿈 수행하기 */
System.out.println("j");
System.out.println("a");
System.out.println("v");
System.out.println("a");
/** 2) 아무런 내용도 출력하지 않고 줄바꿈만 수행 */
System.out.println();
/** 3) 괄호안의 내용을 출력하고 줄바꿈 안하기 */
System.out.print("j");
System.out.print("a");
System.out.print("v");
System.out.print("a");
}
}
📒 Ex02_입력
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
/** 1) 클래스 정의 상단에 다음의 구문을 추가함 */
import java.util.Scanner;
public class Ex02_입력 {
public static void main(String[] args) {
/** 2) 메인 메서드 첫 라인에서 다음의 구문을 추가함 */
// 프로그램에 대한 입력기능(System.in)에 대한 스캔기능(Scanner)를 활성화 하여
// 그 결과를 reader에 저장함
Scanner reader = new Scanner(System.in);
/** 3) 문자열을 입력받고자 하는 경우 */
System.out.print("이름을 입력하세요: ");
String name = reader.nextLine();
/** 4) 숫자값을 입력받고자 하는 경우 */
System.out.print("나이를 입력하세요: ");
int age = reader.nextInt();
/** 5) 실수값을 입력받고자 하는 경우 */
System.out.print("키를 입력하세요: ");
// float height = reader.nextFloat();
double height = reader.nextDouble();
/** 6) 입력값을 더 이상 사용하지 않는다면 입력기능 닫기 */
reader.close();
/** 7) 결과 활용 */
System.out.println("---------------");
System.out.println(name + "님은 " + age + "세이고 키는 " + height + "cm 입니다.");
System.out.println("---------------");
}
}
📒 Ex03_이스케이프문자
1
2
3
4
5
6
public class Ex03_이스케이프문자 {
public static void main(String[] args) {
System.out.println("\"Java\"\t\'Programming\'");
System.out.println("Hello\nWorld");
}
}
📒 Ex04_형식문자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Ex04_형식문자 {
public static void main(String[] args) {
String name = "토마토";
int age = 20;
System.out.printf("%s님은 %d세 입니다.\n", name, age);
double temp = 15.789012345;
double dust = 10.567890123;
System.out.printf("오늘의 기온은 %f이고 미세먼지 농도는 %g 입니다.\n", temp, dust);
String place = "신촌";
int time = 20;
String result = String.format("%s까지는 약 %d분이 걸립니다.\n", place, time);
System.out.println(result);
}
}
📒 Ex05_자릿수지정
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
public class Ex05_자릿수지정 {
public static void main(String[] args) {
/** 1) 문자열의 자릿수 지정 */
// 문자열이 10자리보다 짧은 경우
System.out.printf("%10s\n", "java");
// 문자열이 10자리보다 긴 경우
System.out.printf("%10s\n", "java programming");
/** 2) 정수의 자리수 지정 */
// 문자열이 5자리보다 짧은 경우
System.out.printf("%5d\n", 123);
// 문자열이 5자리보다 긴 경우
System.out.printf("%5d\n", 1234567890);
/** 3) 정수의 빈 자리를 0으로 채우기 */
System.out.printf("%010d\n", 1234567);
/** 4) 실수의 자릿수 지정 */
System.out.printf("%10f\n", 123.4567);
/** 5) 실수의 빈 자리를 0으로 채우기 */
// 전체 10자리, 0은 값의 뒤에 적용된다.(기본형)
System.out.printf("%10f\n", 123.4567);
// 소수점 둘째자리까지만 출력 (소수점 반올림)
System.out.printf("%.2f\n", 123.4567);
// 소수점 자리수가 지정된 경우에 한해서 빈자리를 공백으로 두고 오른쪽 정렬
System.out.printf("%10.2f\n", 123.4567);
// 소수점 자리수가 지정된 경우에 한해서 빈자리를 0으로 채우고 오른쪽 정렬
System.out.printf("%010.2f\n", 123.4567);
}
}
This post is licensed under CC BY 4.0 by the author.