IT/JAVA

입출력

iamhyeon 2024. 9. 10. 11:32

입력

 

★ ★ 문자열과 숫자를 하나의 프로그램에서 입력 받아야 하는 경우 

*문자* > *숫자*  순서로 입력 받아야 한다!!!

 

- 숫자를 읽은 후 nextLine()을 호출하면 예상치 못한 동작이 발생할 수 있다

- 이는 숫자를 읽은 후 남아 있는 개행 문자(\n)를 nextLine()이 읽기 때문이다

 

=> 숫자 뒤에 문자열을 읽을 때는 nextLine()을 호출해 개행 문자를 처리해야 한다

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 숫자 입력
        System.out.print("숫자를 입력하세요: ");
        int number = scanner.nextInt();
        
        // 개행 문자 소비 (버퍼 정리)
        scanner.nextLine();
        
        // 문자열 입력
        System.out.print("문자열을 입력하세요: ");
        String text = scanner.nextLine();
        
        System.out.println("입력된 숫자: " + number);
        System.out.println("입력된 문자열: " + text);
    }
}

 

=> 숫자와 문자열을 섞어서 입력받을 수 있지만, 타입에 따라 처리 순서를 조정하고, 특히 숫자 뒤에는 nextLine()으로 개행 문자를 처리하는 것이 중요하다 !!! 

 

// 문자열
String name = reader.nextLine();

// 정수
int age = reader.nextInt();

// 실수
double height = reader.nextDouble();

 

 

 

 

이스케이프 문자

\n 줄바꿈
\t
\'    \" 따옴표
\\ 역슬래시

 

 

 

 

 형식문자

%s 문자열  
%d 정수  
%f 실수 소수점 6자리까지 표시
그 이상은 반올림
%g 실수 소수점 4자리까지 표시
그 이상은 반올림
%% 퍼센트 표시  

소수점 자리 제한하는 방법 따로있어서 %g는 잘 안 쓴다

 

String name = "hyeon";
int age = 20;
System.out.printf("%s님은 %d세 입니다. \n", name, age);

System.out.prinln("%s님은 %d세 입니다. \n", name, age);

println 으로 할 시 Error -> The method println(int) in the type PrintStream is not applicable for the arguments (String, int) 

 

printf 는 \n 줄바꿈을 넣어줘야 한다

 

 

 

 

자릿수 지정

System.out.printf("%10s\n", "java");
System.out.printf("%10s\n", "java programming");

- 주어진 자릿수보다 짧을 경우 왼쪽부터 공백 추가

- 주어진 자릿수보다 긴 경우 그대로 출력

System.out.printf("%5d\n", 123);
System.out.printf("%5d\n", 1234567);

System.out.printf("%010d\n", 12345);

System.out.printf("%10f\n", 123.4567);
System.out.printf("%010f\n", 123.4567);

//  소수점 둘째자리까지만 출력
System.out.printf("%.2f\n", 123.4567);
//  소수점 자릿수, 10칸에서 오른쪽 정렬
System.out.printf("%10.2f\n", 123.4567);
//  소수점 자릿수, 빈자리 0으로 채우고 오른쪽 정렬
System.out.printf("%010.2f", 123.4567);

반응형

'IT > JAVA' 카테고리의 다른 글

Helper  (0) 2024.09.26
패키지와 라이브러리  (0) 2024.09.25
예외처리  (0) 2024.09.25
static  (0) 2024.09.24
인터페이스  (0) 2024.09.24