Java/Basic
화면 출력과 화면 입력
최로이
2021. 2. 14. 16:51
우리가 출력할 때 주로 사용하는 메소드는 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 타입의 정수로 변환한다.