Scanner 클래스
... 키보드 입력 뿐 아니라 다양한 데이터에 이용!
- java.util.Scanner 를 import 해야 사용가능
* 주요 메소드
: 입력받아야 하는 데이터의 타입에 따라 사용
: 데이터 구분의 기준은 공백이다(스페이스 바, 엔터, 탭)
- public boolean nextBoolean();
- public byte nextByte();
- public short nextShort();
- public int nextInt();
- public long nextLong();
- public float nextFloat();
- public double nextDouble();
- public String nextLine();
ex)
import java.util.Scanner;
class ExScanner
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("a: " + a);
String b = sc.nextLine();
System.out.println("b: " + b);
}
}
|
결과
... 이상한 결과가 나옴, b는 입력의 기회도 없이 출력되버림
why?
: a를 입력받을 때 데이터 구분을 위해 사용되었던 공백이 nextLine 메소드에 의해 읽혀져서 b에 들어갔기 때문!
그래서
import java.util.Scanner;
class ExScanner
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("a: " + a);
sc.nextLine(); //공백을 읽어준다.
String b = sc.nextLine();
System.out.println("b: " + b);
}
}
|
b를 입력받기 전 nextLine() 메소드를 사용하여 공백을 제거해준다.
(결과)
올바른 실행 결과가 나옴!!
댓글 없음 :
댓글 쓰기