본문 바로가기
프로그래밍/Java-문법정리

【Java문법】표준입출력

by 코이킹 2022. 1. 9.
반응형

안녕하세요 코이킹입니다. 

 

이번 포스트에선 콘솔에서 유저로부터 데이터를 입력받고, 출력하는 것에 대해서 설명하겠습니다. 

 


1. 값 입력 하기 (Scanner클래스 사용)

Scanner클래스는 유저로부터 데이터를 입력받는 다양한 메서드를 제공하는 클래스입니다. 

 

1) 정수 데이터 입력 

// (int)
int inputInt = sc.nextInt();
System.out.println("Inputed int : "+inputInt);
		
// (long)
long inputLong = sc.nextLong();
System.out.println("Inputed long : "+inputLong);
		
// (byte)
byte inputByte = sc.nextByte();
System.out.println("Inputed byte : "+inputByte);
		
// (short)
short inputshort = sc.nextShort();
System.out.println("Inputed short : "+inputshort);

 

2) 문자 데이터 입력

char inputChar = sc.next().charAt(0);
System.out.println("Inputed char : "+inputChar);

 

3) 문자열 데이터 입력 

// 문자열을 공백기준으로 입력 받는다.
String inputString = sc.next();
System.out.println("Inputed String next : "+inputString);
		
// 엔터키를 입력하기 전까지의 전체 문자열을 입력받는다
String inputStringNextLine = sc.nextLine();
System.out.println("Inputed String nextLine : "+inputStringNextLine);

 

4) 부동소수점수 데이터 입력

// (float)
float inputFloat = sc.nextFloat();
System.out.println("Inputed float : "+inputFloat);
		
// (double)
double inputDouble = sc.nextDouble();
System.out.println("Inputed double : "+inputDouble);

 

5) 논리 데이터 입력 

boolean inputBoolean = sc.nextBoolean();
System.out.println("Inputed boolean : "+inputBoolean);

 

2. 값 입력하기 (BufferedReader클래스 사용)

 BufferedReader클래스를 사용하여 데이터 입력을 받을 경우 Scanner클래스를 사용하여 데이터를 입력받는 것보다, 

속도가 더 빠르며 입력받는 데이터가 많을수록 효율이 증가합니다. 

※ 입력된 데이터를 버퍼에 보관하여, 사용자가 데이터를 요청할 시 버퍼에서 데이터를 읽어오므로 더 빠르다. 

 

하지만 데이터의 입력은 문자열로 받아야하므로 StringTokenizer나 String의 split메서드를 사용하여 입력받는 값을 자르는 처리를 해주어야 합니다. 

 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
String inputedStringFromBR;
StringTokenizer st = null;
String [] strArray = null;
		
try {
    inputedStringFromBR = br.readLine();
    st = new StringTokenizer(inputedStringFromBR, " "); // 공백을 구분자로 문자열 자르기 
    strArray = new String[st.countTokens()];
    for (int i=0; i<strArray.length; i++) {
        strArray[i] = st.nextToken();
    }
    
    } catch (IOException e) {
        e.printStackTrace();
    }
    
    for (String str : strArray) {
        System.out.println("BufferedReader inputed : "+str);
    }

 

3. 값 출력하기

1) 개행포함 출력 (System.out.println();)

System.out.println("Hello World 1");
System.out.println("Hello World 2");

// 결과
// Hello World 1
// Hello World 2

2) 개행없이 출력 (System.out.print();)

System.out.print("Hello World 1");
System.out.print("Hello World 2");

//  결과 
// Hello World 1Hello World 2

3) 서식지정 출력 (System.out.printf();, String.format();)

// System.out.printf("서식", 값1, 값2...);
	
// 1) %d : 정수
System.out.printf("number 1 : %d %n", 100);
System.out.printf("number 1 : %d , number 2 : %d %n", 100, 1500);
		
// 2) %f : 실수 
System.out.printf("double 1 : %f %n", 0.15);
System.out.printf("double 2 : %.3f %n", 2.123456); // 소수점 3자리까지 출력
		
// 3) %c : 문자 
System.out.printf("char : %c %n", 'a');
		
// 4) %s : 문자열 
System.out.printf("String : %s-----%s %n", "Hello", "World");
		
// ※ String.format("서식", 값1, 값2...);
System.out.println(String.format("String : %s-----%s %n", "Hello", "World"));

 


 

※ 예제코드

https://github.com/leeyoungseung/algorithmBasic/blob/master/algorithm/src/basic/B_09_IO.java

 

※ qiita에 투고한 URL

https://qiita.com/Koiking-L/items/68c5fa6adf8a4854c53f

 

 

반응형

'프로그래밍 > Java-문법정리' 카테고리의 다른 글

【Java문법】리스트(List)  (0) 2022.01.10
【Java문법】래퍼클래스  (0) 2022.01.10
【Java문법】메서드  (0) 2022.01.09
【Java문법】배열  (0) 2022.01.09
【Java문법】반복문  (0) 2022.01.09

댓글