관리 메뉴

CASSIE'S BLOG

printf와 형식 지정자(%s, %d) 본문

PROGRAMMING/JAVA

printf와 형식 지정자(%s, %d)

ITSCASSIE1107 2023. 12. 12. 13:44

%s: string의 약자

 

%d: decimal 의 약자

정수는 나타낸다. 

 

public void printMyInfo(){
    System.out.printf("[Student] schoolName: %s, classYear: %d, classroomNumber: %d" +
            "studentNumber: %d, studentId: %d, name: %s, gender: %s",
            this.schoolName, this.classYear, this.classroomNumber, this.studentNumber, this.studentId,
            this.name, this.gender
            );
}

 

printf 메소드의 사용법은 C 언어의 printf 함수와 유사하며, 형식 지정자를 사용하여 출력 형식을 지정할 수 있습니다. 형식 지정자는 % 기호 뒤에 나오는 문자들로 이루어져 있습니다. 일반적으로 사용되는 형식 지정자에는 다음과 같은 것들이 있습니다:

  • %s: 문자열을 나타냅니다.
  • %d: 정수를 십진법으로 나타냅니다.
  • %f: 부동 소수점 숫자를 나타냅니다.
  • %b: 불리언 값을 나타냅니다.
  • %c: 문자를 나타냅니다.

아래는 간단한 printf의 예제입니다:

 

public class PrintfExample {
    public static void main(String[] args) {
        String name = "John";
        int age = 25;
        double height = 175.5;

        // 형식 지정자를 사용하여 문자열을 출력
        Systehttp://m.out.printf("Name: %s, Age: %d, Height: %.2f\n", name, age, height);
    }
}

 

이 코드에서 %s, %d, %f는 각각 문자열, 정수, 부동 소수점 숫자를 나타내는 형식 지정자입니다. printf 메소드에 전달된 인자들은 순서대로 형식 지정자에 대응되며, 출력 문자열은 형식 지정자에 따라 적절하게 형식화됩니다.

실행 결과:

 

Name: John, Age: 25, Height: 175.50

 

%f는 부동 소수점 숫자를 나타내는 형식 지정자로, Java에서는 float와 double 모두에 사용됩니다. 부동 소수점 값은 %f를 사용하여 출력할 수 있습니다.

예를 들어:

 

public class PrintfFloatExample {
    public static void main(String[] args) {
        float floatValue = 3.14f;
        double doubleValue = 42.42;

        // %f 형식 지정자를 사용하여 부동 소수점 숫자를 출력
        System.out.printf("Float Value: %f\n", floatValue);
        System.out.printf("Double Value: %f\n", doubleValue);
    }
}

 

 

이 코드에서 %f는 부동 소수점 숫자를 출력하는데 사용되고, floatValuedoubleValue는 각각 floatdouble 형식의 부동 소수점 숫자입니다. 결과는 각각의 값이 출력 형식에 따라 형식화된 것을 보여줍니다.

 

 

 float든 double이든 형식지정자는 %f를 쓴다. 

Java에서는 float와 double 모두를 출력할 때 %f 형식 지정자를 사용합니다. %f는 부동 소수점 숫자를 나타내는 표준 형식 지정자로, 어떤 크기의 부동 소수점 숫자든 사용할 수 있습니다. 따라서 float나 double 변수의 값을 출력할 때 모두 %f 형식 지정자를 사용할 수 있습니다.

 

 

package exercise.chapter_30;

public class Student {

    //맨처음에 1로 초기화 어떻게 1로 올릴거냐 생성자를 사용할 예정
    static int serialNum = 1;

    //속성
    private String schoolName;
    private int classYear;
    private int classroomNumber;
    private int studentNumber;

    private int studentId;

    //기본정보
    private String name;
    private String gender;


    public Student() {
    }

    public Student(String pName, String pGender) {
        name = pName;
        gender = pGender;
    }

    public void printMyInfo(){
        System.out.printf("[Student] schoolName: %s, classYear: %d, classroomNumber: %d" +
                "studentNumber: %d, studentId: %d, name: %s, gender: %s\n",
                this.schoolName, this.classYear, this.classroomNumber, this.studentNumber, this.studentId,
                this.name, this.gender
                );
    }

    //아무것도 안 적으면 default
    Student(String schoolName, int classYear, int classroomNumber, int studentNumber, int studentId, String name, String gender) {
        //생성자의 parameter에 serialNum을 넣는게 아니라 스스로 알아서 올라가라고 그냥 this.studentId = serialNum;
        //++ 하면 1씩 들어간다.
        //처음에는 초기화값된 값이 들어가고. 이후에 그게 끝나면은 1씩 올라가라 이 뜻임.
        this.studentId = serialNum++;
        this.schoolName = schoolName;
        this.classYear = classYear;
        this.classroomNumber = classroomNumber;
        this.studentNumber = studentNumber;
        this.studentId = studentId;
        this.name = name;
        this.gender = gender;
    }

    public String getName() {
        return this.name;
    }
}

 

 

package exercise.chapter_30;

public class StaticTest {

    public static void main(String[] args){
        //4명 정도 만들기
        Student student1 = new Student("Alice", "Female");
        Student student2 = new Student("Tom", "Male");
        Student student3 = new Student("Taylor", "Female");
        Student student4 = new Student("Mike", "Male");

        student1.printMyInfo();
        student2.printMyInfo();
        student3.printMyInfo();
        student4.printMyInfo();

    }
}
반응형