import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in); // Scanner의 객체 생성 System.in으로 입력값을 바이트 단위로 읽음
System.out.println("================================");
for(int i=0;i<3;i++) // for문을 이용한 반복문. i 변수를 0으로 초기화 하고, 3보다 작을때까지, i가 하나씩 증가하며 조건 만족시까지 반복
{
String s1=sc.next(); // next();로 공백 이전까지의 문자열을 입력받음
int x=sc.nextInt(); // nextInt();로 정수 입력 받음
System.out.printf("%-15s%03d%n", s1, x);
// %-15s: String을 출력하되, 입력 숫자(15)만큼의 공간을 할당한다. 양수는 문자열이 오른쪽 정렬되고 음수는 왼쪽 정렬된다.
// %03d: 정수(%d)를 표현하되, 총 3자리로 나타내고, 앞 빈자리는 0으로 채운다.
// %n: 개행한다.
}
System.out.println("================================");
}
}
System.out.printf(format, arguments)의 형식으로 작성.
%n: 줄 바꿈(개행)
%s: string 형식 출력
%d: integer 형식 출력
%f: float 형식 출력
%t: date, time 형식 출력
%o: 8진수 integer형식 출력
%x: 16진수 integer형식 출력
%b: boolean형식 출력
%e: 지수 형식 출력
원래는 아래와 같이 조건에 따라서 input값으로 주어지는 숫자가
100의 자리, 10의 자리, 1의 자리인 경우를 나누어 숫자 앞에 0을 넣어 3자리수를 맞추도록 했다.
if(x >=100){
System.out.printf(“%-15s%d%n”, s1, x);
} else if(x >=10) {
System.out.printf(“%-15s0%d%n, s1, x);
} else {
System.out.printf(“%-15s00%d%n”, s1, x);
}
그런데 검색하다보니 조건을 일일히 맞춰주지 않아도 나타내야 하는 총 자리수를
지정해주기만 하면 앞의 빈자리는 자동으로 0을 채워주는 방식을 알게 되어
풀이를 간단하게 하였다.
- Java/자바] 숫자 앞에 공(0), 제로(영) 붙이기-추가. Leading Zero to Number,
http://mwultong.blogspot.com/2007/01/java-0-leading-zero-to-number.html