본문 바로가기

JAVA

C++ 프로그래머 Java 맛보기 #22

출력에 관련된 내용을 보도록 하자. c++에서는 주로 printf 를 이용해서 output 를 주로 확인해왔다. 마찬가지로 java 에서 도 비슷한 방법을 이용하는데 println, printf, print, format  등등에 여러 방법을 제공하고 있다. 고로 상황에 맞게 자신이 원하는 메소드를 사용하여 출력하면 될 것이다.

 

System.out.println("Hello world");

 

값 들을 출력을 하려고 하면 특정 형태의 포맷 형태대로 출력을 해야하는 일들이 많기 때문에 이를 지원하기 위해서 여러 포맷이 존재하고 이에 대한 자세한 내용은http://download.oracle.com/docs/cd/E17409_01/javase/7/docs/api/java/util/Formatter.html 을 참조 하면된다.

 

.

 

Converters and Flags Used in TestFormat.java
Converter Flag Explanation
d   A decimal integer.
f   A float.
n   A new line character appropriate to the platform running the application. You should always use%n, rather than \n.
tB   A date & time conversion—locale-specificfull name of month.
td, te   A date & time conversion—2-digit day of month. td has leading zeroes as needed, te does not.
ty, tY  

A date & time conversion—

ty = 2-digit year,

tY = 4-digit year.

tl   A date & time conversion—hour in 12-hour clock.
tM   A date & time conversion—minutes in 2 digits, with leading zeroes as necessary.
tp   A date & time conversion—locale-specificam/pm (lower case).
tm   A date & time conversion—months in 2 digits, with leading zeroes as necessary.
tD   A date & time conversion—date as %tm%td%ty
  08 Eight characters in width, with leading zeroes as necessary.
  + Includes sign, whether positive or negative.
  , Includes locale-specific grouping characters.
  - Left-justified..
  .3 Three places after decimal point.
  10.3 Ten characters in width, right justified, with three places after decimal point.

 

 

 

 import java.util.Calendar;
import java.util.Locale;

public class TestFormat {
    
    public static void main(String[] args) {
      long n = 461012;
      System.out.format("%d%n", n);                  //  -->  "461012"
      System.out.format("%08d%n", n);                //  -->  "00461012"
      System.out.format("%+8d%n", n);                //  -->  " +461012"
      System.out.format("%,8d%n", n);                //  -->  " 461,012"
      System.out.format("%+,8d%n%n", n);             //  -->  "+461,012"
      
      double pi = Math.PI;
      System.out.format("%f%n", pi);                 //  -->  "3.141593"
      System.out.format("%.3f%n", pi);               //  -->  "3.142"
      System.out.format("%10.3f%n", pi);             //  -->  "     3.142"
      System.out.format("%-10.3f%n", pi);            //  -->  "3.142"
      System.out.format(Locale.FRANCE,
                        "%-10.4f%n%n", pi);          //  -->  "3,1416"

      Calendar c = Calendar.getInstance();
      System.out.format("%tB %te, %tY%n", c, c, c);  //  -->  "May 29, 2006"
      System.out.format("%tl:%tM %tp%n", c, c, c);   //  -->  "2:34 am"
      System.out.format("%tD%n", c);                 //  -->  "05/29/06"
    }
}