본문 바로가기
개발자의 공부방/TO-DO

printf 를 써보자

by 쌈빡한 쥬니준 2019. 3. 11.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.Tutorial.java;
 
public class JavaPrintf {
 
    public static void main(String[] args) {
        int a = 100;
        int b = 20;
        
        System.out.println("출력문에 대해서!");
        System.out.println("===============");
        System.out.printf("줄바꾸기 가능??");
        System.out.printf("가능??%n%n");
        //printf 는 줄바꾸기가 불가능하다.
        //줄바꾸려면 %n 입력, 엔터키 2번 치듯이 중복 가능.
        
        //printf 형식출력의 특징.
        /*
        지시자는 어떻게 출력할 것인지를 지정해주는 역할을 한다.
        
        %d : 10진수(decimal) 정수 출력
        %b : 불리언(boolean) 출력
        %o : 8진수(Octal) 출력
        %x , %X : 16진(hexa-decimal) 출력
        %f : 부동 소수점 (floating-point) 출력
        %e, %E : 지수(Exponent) 출력 
        %c : 문자(Character) 출력
        %s : 문자열(String) 출력
        */
        
        //정수 출력 %d
        System.out.printf("숫자: %d",a+"dd");
        /*System.out.printf("숫자: %d",a+"dd");
        println 처럼 "문자열" + a 등 println 에서 사용할때 처럼 '+' 를 사용해서는 안된다.
        */
        
        System.out.printf("숫자: %d",1100);
        /*
        println 처럼 지정된 변수를 사용하지 않아도 된다. 변수가 지정되지 않아도 다양한 숫자를 쓸 수 있다.
        */
        
        System.out.printf("숫자 : 100");
        /*
        만약 출력하는 값이 2개라면, 지시자도 2개를 사용해야한다.
        출력될 값과 지시자의 순서는 일치해야 한다.     
        */
        
        System.out.printf("숫자: %d",a,b);
        /*
        이렇게 하게 되면 지시자는 1개라서 a에 지정된 변수밖에 출력되지 않는다.
        */
    }
 
}
 
cs




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
package com.Tutorial.java;
 
import java.util.Scanner;
 
public class javaPrintf3 {
 
    public static void main(String[] args) {
 
        Scanner scn = new Scanner(System.in);
        System.out.println("숫자입력하슈");
        String input = scn.nextLine();
        int a = Integer.parseInt(input);
        //int a = scn.nextInt();
        /* 이 메서드들은 화면에서 연속적으로 값을 입력 받아서 사용하기에 까다롭다.
         Integer.parseInt() 와의 차이는 NextInt(), NextFloat()등의 메서드와의 차이는
         입력을 2번 해야 한다는 점? (엔터 두번처야함)
         이유 : scn 이라는 변수명 자체가 Scanner 라는 객체이기 때문에 스캐너객체에 nextInt를 할 경우
         input에 먼저 입력을 했는데 또 한번 스캐너 객체를 불러오기 때문에 입력을 2번 하는 약간의 번거로움 때문에
         변환 메서드를 사용하길 권장하는 것 같다.
        */
        //float b = scn.nextFloat();
        
        System.out.println("입력내용: "+input);
        System.out.printf("출력=%d%n",a);
    }
}
 
cs




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
33
34
35
36
37
38
39
40
41
package com.Tutorial.java;
 
public class JavaPrintf2 {
    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 big = 100000000L
        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\
        int bxmNum = 0b11010;
        
        int MAX_VALUE = 100;
        
        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("",bxmNum);
        
        System.out.printf("finger=[%5d]%n", finger); // 띄어쓰기 할 때 %5d 지시자+숫자(간격)+d
        System.out.printf("finger=[%-5d]%n", finger); // 띄어쓰기의 기준은 무조건 왼쪽부터이며 반대로해야할 경우 - 마이너스 붙임.
        System.out.printf("finger=[%05d]%n", finger); // 빈자리수는 위와 동일하지만 공백을 0으로 채우는 것이다. 다른 숫자로는 불가능한듯.
        
        
        System.out.printf("big=%d%n", big); // long 을 정수로 표현
        System.out.printf("hex=%#x%n", hex); // # 은 접두사 (16진수 0x, 8진수 0)
        System.out.printf("hex=%#x%n", octNum); // # 은 접두사 (8진수 0)
        
        System.out.printf("octNum=%o, %d%n", octNum, octNum); //옥타 출력, 정수로 출력 : 9
        System.out.printf("hexNum=%x, %d%n", hexNum, hexNum); //핵사 출력, 정수로 출력 : 16 
        System.out.printf("binNum=%s, %d%n", Integer.toBinaryString(binNum), binNum); //불린 출력, 정수로 출력 : 2
            
    }
}
 
cs


'개발자의 공부방 > TO-DO' 카테고리의 다른 글

향후계획] 정리를하자.  (0) 2020.08.06
ajax 로 시간 데이터를 javascript로 갖고와서 출력  (0) 2019.11.06
php소스  (0) 2019.07.03
printf 를 써보자  (0) 2019.03.11
랜덤값을 뽑아보자 (Math.random)  (0) 2019.02.12

댓글0