728x90

 

  1. 2대 스캐너
  2. 단일 스캐너
  3. BufferedReader class

 

1. 스캐너 2개 사용

Scanner + while(sc.hasNextLine()) + [] sc.nextLine().split(”\\s”)

 

2. 단일 스캐너

ArrayList + while(sc.hasNext()) + add(sc.next())

 

3.BufferedReader

BufferedReader + while( 변수.readline() != null )+ [] 변수.split(”\\s”)

스캐너는 try catch가 자동으로 되고 BufferedReader는 익셉션을 수동으로 잡아줘야해서 try catch 필수

 

참고자료

https://www.techiedelight.com/ko/read-multi-line-input-console-java/

728x90
반응형
728x90

 

Scanner + String Class split() 방법을

BufferedReader+StringTokenizer으로 다시 풀어봄

 

BufferedReader의 readLine() 메소드로 입력을 받고 이 값을 담아둔 변수명인 br을 

StringTokenizer 안에 담아둬서 " "으로 구분자 지정하고 나눈다.

ex) 100 100 입력 받았으면 100 사이 공백을 기준으로 100, 100 두 수를 만들게 된다.

이 상태에서 배열에 담아 두 수를 다시 분리할 수 있도록 한다

이후에는 if문 조건

public void method01() throws IOException {
    // Step2-1 1330번 : 두 수 비교하기
    // 조건
    // 한 줄에 두 수 받기

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine()," ");

    int[] num = new int[2];
    for(int i=0; i < num.length;i++){
        num[i] = Integer.parseInt(st.nextToken());
    }
//        System.out.println(Arrays.toString(num));

    int num1 = num[0];
    int num2 = num[1];

    if(num1 > num2){
        System.out.println(">");
    }else if(num1 < num2){
        System.out.println("<");
    }else{
        System.out.println("==");
    }


}

 

728x90
반응형
728x90

 

문제 : 9498번: 시험 성적 (acmicpc.net)

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

풀이

스캐너 혹은 버퍼드리더로 숫자를 받는다
  - 버퍼드는 str만 받으므로 int로 형변환해야함
  - 또한, import문 넣을 때도 IOException도 같이 넣어줘야 컴파일 에러 안남
각 점수대 별로 if문으로 점수 분배

 

정답

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int score = Integer.parseInt(br.readLine());


        if(score >= 90){
            System.out.println("A");
        }else if(score >= 80){
            System.out.println("B");
        }else if(score >= 70){
            System.out.println("C");
        }else if(score >= 60){
            System.out.println("D");
        }else{
            System.out.println("F");
        }
    }
}

 

 

728x90
반응형
728x90

 

문제 : 9498번: 시험 성적 (acmicpc.net)

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

풀이

스캐너 혹은 버퍼드리더로 숫자를 받는다
(버퍼드는 str만 받으므로 int로 형변환해야함. 또한 import문 넣을 때도 IOException도 같이 넣어줘야 컴파일 에러 안남)
각 점수대 별로 if문으로 점수 분배

 

정답


import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int score = Integer.parseInt(br.readLine());


        if(score >= 90){
            System.out.println("A");
        }else if(score >= 80){
            System.out.println("B");
        }else if(score >= 70){
            System.out.println("C");
        }else if(score >= 60){
            System.out.println("D");
        }else{
            System.out.println("F");
        }
    }
}

 

728x90
반응형

+ Recent posts