본문 바로가기
Java/Basic

화면 출력과 화면 입력

by 최로이 2021. 2. 14.

우리가 출력할 때 주로 사용하는 메소드는 println()다. println()는 사용하기 편리하고 자동으로 줄바꿈을 해주는 장점이 있지만 다른 형식으로는 출력할 수 없는 단점이 있다. 예를 들어 같은 값이라도 다르게 출력하고 싶다면?

이를 위해 printf()를 사용한다. printf()지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 지니고 있다. 이 때 지시자는 값을 어떻게 출력해줄 것인지를 지정해주는 역할을 한다.

 

1.1 종류

지시자 설명
%b boolaen(true, false)
%d 10진수(demical integer)
%o 8진수(octal integer)
%x, %X 16진수(hexademical integer)
%f 10진수(demical float)
%e, %E 지수형태표현(exponent)
%c 문자(character)
%s 문자열(string)
%n 줄바꿈

 

1.2 사용방법

1. 기본형에 대한 지시자 사용의 예

class PrintfEx1 {
	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 hex = 0xFFFF_FFFF_FFFF_FFFFL ;  // long hex = 0xFFFFFFFFFFFFFFFFL;

		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%n", 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);  
	}
}

-----------------------------------------------------------------------------------------------
[실행결과]
b=1
s=2
c=A, 65 
finger=[   10]
finger=[10   ]
finger=[00010]
big=100000000000
hex=0xffffffffffffffff
octNum=10, 8
hexNum=10, 16
binNum=10, 2

2. 실수형과 문자열을 출력하는 지시자 사용의 예

class PrintfEx2 {
	public static void main(String[] args) {
		String url = "www.codechobo.com";

		float f1 = .10f;   // 0.10, 1.0e-1
		float f2 = 1e1f;   // 10.0, 1.0e1, 1.0e+1
		float f3 = 3.14e3f;
		double d = 1.23456789;

		System.out.printf("f1=%f, %e, %g%n", f1, f1, f1); 
		System.out.printf("f2=%f, %e, %g%n", f2, f2, f2); 
		System.out.printf("f3=%f, %e, %g%n", f3, f3, f3);

		System.out.printf("d=%f%n", d);
		System.out.printf("d=%14.10f%n", d); // 전체 14자리 중 소수점 10자리

		System.out.printf("[12345678901234567890]%n");
		System.out.printf("[%s]%n", url);
		System.out.printf("[%20s]%n", url);
		System.out.printf("[%-20s]%n", url); // 오른쪽 정렬
		System.out.printf("[%.8s]%n", url);  // 왼쪽에서 8글자만 출력
	}
}
--------------------------------------------------------------------------------------------------
[실행결과]
f1=0.100000, 1.000000e-01, 0.100000
f2=10.000000, 1.000000e+01, 10.0000
f3=3140.000000, 3.140000e+03, 3140.00
d=1.234568
d=  1.2345678900
[12345678901234567890]
[www.codechobo.com]
[   www.codechobo.com]
[www.codechobo.com   ]
[www.code]

 

1.3 화면에서 입력 받기 - Scanner

사용방법

1) import.java util.* //Scanner 클래스 사용을 위해 import 하기.

2) Scanner 클래스 객체 생성.

3) nextLine() 메소드 호출하기

 

정리하면 다음과 같다.

import.java.util.*; // Scanner를 사용하기 위해 추가

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

      system.out.print("두자리 정수를 하나 입력해주세요 >> ")
      String input = scanner.nextLine(); //입력한 문자를 String 타입의 변수 input에 저장
      int num = Integer.parseInt(input); //입력받은 String 변수 input을 Integer 타입의 변환후 변수 num에 저장

      system.out.println("입력내용 : "+input);
      system.out.printf("num=%d%n", num);
    }
}
----------
[실행결과]
**입력 값을 정수 11을 입력했을 경우
두자리 정수를 하나 입력해주세요 >> 11
입력내용: 11
num=11


 

입력 받은 문자열을 숫자로 변환하려면 Integer.parseInt() 메소드를 사용하면 된다. 해당 메소드는 int 타입의 정수로 변환한다.

'Java > Basic' 카테고리의 다른 글

연산자  (0) 2021.02.18
형변환(Casting)  (0) 2021.02.17
기본형(primitive type)  (0) 2021.02.16
변수와 상수  (0) 2021.02.13
객체지향의 개념과 클래스, 객체  (0) 2021.01.18

댓글