호쌤
호쌤 Just For Fun

[Java] 기본 입출력

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[Java] 기본 입출력≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[Java] 기본 입출력

명령프롬프트를 통해 값을 출력하기 위한 다양한 기법과 사용자로부터 직접 값을 입력받기 위한 처리를 살펴봅니다.

#01. 출력

1) 괄호안의 내용을 출력하고 줄바꿈 수행하기

println()lnline의 줄임말

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();

주의! 문자열과 숫자를 하나의 프로그램에서 입력받아야 하는 경우 문자 > 숫자의 순서로 입력 받아야 합니다.

UserInput.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Scanner;

public class UserInput {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);

        System.out.print("이름을 입력하세요: ");
        String name = reader.nextLine();

        System.out.print("나이를 입력하세요: ");
        int age = reader.nextInt();

        System.out.println("---------------");
        System.out.println(name + "님은 " + age + "세 입니다.");
        System.out.println("---------------");
    }
}

#03. 이스케이프 문자

출력시에 문자열에 포함시킬 수 없는 줄바꿈, 탭키 등을 처리하기 위한 특수문자.

글자 앞에 역슬래시(\)를 적용하여 두 글자가 모여 한 글자로 인식된다.

이스케이프 문자 의미
\n 줄바꿈
\t 탭키
\" 쌍따옴표 
\' 홑따옴표 
\\ 역슬래시 자체 
1
2
System.out.println("\"Java\"\t\'Programming\'");
System.out.println("Hello\nWorld");
출력결과
1
2
3
"Java"  'Programming'
Hello
World

#04. 형식문자

문자열을 출력할 때 변수값이 적용될 수 있는 치환자.

1) 종류

형식문자 의미 설명
%s 문자열  문자열을 지정
%d 정수  10진 정수로 표시
%f 부동 소수점  실수형태의 10진수로 표시
%g 부동 소수점  실수형태의 소수점 10진수로 표시 (반올림 되어 표시) 
%% 퍼센트  퍼센트를 표시

2) 형식문자를 포함하는 문자열 직접 출력하기

형식문자를 치환할 변수들을 순서대로 문자열 뒤에 명시한다.

\n은 줄바꿈을 의미하는 문자.

1
2
3
String name = "토마토";
int age = 20;
System.out.printf("%s님은 %d세 입니다.\n", name, age);

3) 형식문자를 포함하는 문자열에 변수를 적용한 새로운 문자열 만들기

1
2
3
4
5
String name = "토마토";
int age = 20;

// String result = "토마토님은 20세 입니다."; 와 같은 결과
String result = String.format("%s님은 %d세 입니다.\n", name, age);

4) 자리수 지정

%다음에 자리수를 의미하는 숫자를 명시할 수 있다.

출력되는 내용은 오른쪽에 정렬하고 남는 자리는 공백으로 채워진다.

만약 자리수가 부족할 경우 원본값이 그대로 출력된다.

문자열의 자리수 지정

1
System.out.printf("%10s\n", "java");
출력결과
1
______java

정수의 자리수 지정

1
System.out.printf("%10d\n", 1234567);
출력결과
1
___1234567

실수의 자리수 지정

소수점을 포함하여 10자리를 만들기 위해 뒤에 0을 추가한다.

1
System.out.printf("%10f\n", 123.4567);
출력결과
1
123.456700

5) 빈 자리를 0으로 채우기

정수의 경우

빈 자리를 0으로 채우도록 지정할 수 있다.

% 다음에 010 과 같은 형식으로 0을 먼저 명시하고 자리수를 지정한다.

1
System.out.printf("%010d\n", 1234567);
출력결과
1
0001234567

실수의 경우

1
2
3
4
5
6
7
8
9
10
11
    // 전체 10자리 0은 값의 뒤에 적용된다.(기본형)
    System.out.printf("%010f\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);
출력결과
1
2
3
4
123.456700
123.46
____123.46
0000123.46

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[Java] 기본 입출력≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus