We will find a way, we always have.

-interstellar

Programming Language/자바

[자바] formatting 출력하기, 입력받기

Redddy 2022. 9. 26. 22:22
printf()

C언어에서 사용하던 printf()를 자바에서도 사용할 수 있다.

지금까지 사용하던 println()은 값을 변환하지 않고는 다른 형식으로 출력할 수 없다. 이제 printf() 사용방법을 확인해보자.

 

지시자 설명
%b 불리안(boolean) 형식으로 출력
%d 10진(decimal) 정수의 형식으로 출력
%o 8진(octal) 정수의 형식으로 출력
%x, %X 16진(hexa-decimal) 정수의 형식으로 출력
%f 부동 소수점(floating-point)의 형식으로 출력
%e, %E 지수(exponent) 표현식의 형식으로 출력
%c 문자(character)로 출력
%s 문자열(string)로 출력

 

 

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
class Main{
    public static void main(String[] args){
        byte b = 1;
        short s = 2;
        char c ='A';
 
        int finger = 10;
        long big = 100_000_000_000L; // long bih = 100000000000L;
        long hex = 0xFFFF_FFFF_FFFF_FFFFL;
 
        int octNum = 010// 8진수 10, 10진수로는 8
        int hexNum = 0x10// 16진수 10, 10진수로는 16
        int binNum = 0b10// 2진수 10, 10진수로는 2
 
 
        System.out.printf("b=%d%n",b);
        System.out.printf("s=%d%n",s);
        System.out.printf("c=%c, %d %n", c, (int)c);
        System.out.printf("finger=[%5d]%n",finger);
        System.out.printf("finger=[%-5d]%n", finger);
        System.out.printf("finger=[%05d]%n", finger);
        System.out.printf("big=%d%n",big);
        System.out.printf("hex=%#x",hex); // '#' 접두사(16진수 0x, 8진수 0);
        System.out.printf("octNum=%o, %d%n", octNum, octNum);
        System.out.printf("hexNum=%x %d%n", hexNum, hexNum);
        System.out.printf("binNum=%s, %d%n", Integer.toBinaryString(binNum), binNum);
    }
}
cs

 

위의 소스코드를 실행하면

.

.

.

이렇게 출력된다.

 

더이상의 자세한 설명은 생략한다. 

 

 

Scanner

 

자바에서 편하게 입력을 받으려면 Scanner 클래스를 import 해줘야한다.

 

코드에 주석을 달아 설명하겠다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*// Scanner를 사용하기 위해 추가
 
class helloworld{
    public static void main(String[] args){
        // Scanner 클래스의 객체를 생성한다.
        Scanner scanner = new Scanner(System.in);
 
        System.out.print("두자리 정수를 하나 입력해주세요. ");
        // 입력 대기 상태에 있다가 엔터 입력시 입력한 내용이 문자열로 반환된다.
        String input = scanner.nextLine();
        // input의 타입을 int 로 변경
        int num = Integer.parseInt(input);
 
        System.out.println("입력내용 :" +input);
        System.out.printf("num=%d%n", num);
    }
}
 
 
cs

 

input을 nextLine()이라는 메서드로 받았는데 이는 라인 전체를 입력받는 것이다. 이외에도 nextInt()나 nextFloat() 등과 같이 바로 int 나 float 형으로 입력 받을 수 있는 메서드도 있다.