자바에서는 Scanner를 이용하여 입력을 받을 수 있다.
다만, 불편하게도 이것을 이용하기 위해서는 Main함수 바깥에 java.util.Scanner를 import 해야한다.
그리고 이후, Main함수 안에서 활용하기 위해서
Scanner sc = new Scanner(System.in);을 기입한다.
이때 선언된 sc가 Scanner의 역할을 한다.
import java.util.Scanner;
public classMain {
public static void main (String args[]) {
Scanner sc = newScanner(System.in);
}
}
변수에 따라 입력받기 위하여 활용되는 함수는 다음과 같다.
- 정수형 입력: sc.nextInt( )
- 실수형 입력: sc.nextDouble( )
- 문자열형 입력: sc.next( )
- 문자형 입력: 없음. * Java에서는 문자 1개만 입력받을 수 없다.
활용법은 다음과 같다.
import java.util.Scanner;
public classMain {
public static void main (String args[]) {
Scanner sc = newScanner(System.in);
int a = sc.nextInt(); // 정수형 변수 입력
double b = sc.nextDouble(); // 실수형 변수 입력
String c = sc.next(); // 문자열 입력
}
}
연속 입력
sc.nextInt( ) 함수와 sc.nextDouble( )함수, sc.next( )함수는 공백 단위로 입력을 받기 때문에 공백을 무시한 채 여러 입력값만을 입력받을 수 있다.
그리고 ‘\n’ 역시 공백과 마찬지로 입력에서 무시되어 여러 입력값을 받을 수 있다.
문자 입력
앞서 언급한대로 Java에서는 문자 1개만 입력받을 수 없기 때문에 문자열 단위로 입력을 받고 charAt(0)함수를 활용하여 char 타입의 문자로 변환하는 번거로운 과정을 거쳐야 한다.
import java.util.Scanner;
public classMain {
public static void main (String args[]) {
Scanner sc = newScanner(System.in);
String s = sc.next(); // 문자열 입력
char c = s.charAt(0); // 입력받은 문자열의 첫번째 문자 추출
System.out.println(c)
}
}
<출력>
>> t
t
특정문자로 구분하여 여러 값 입력
useDelimiter함수 활용
입력 간 공백이나 줄바꿈이 아닌 특정 문자로 구분하여 입력을 받고 싶다면, sc.useDelimiter(특정문자)를 활용하면 자동으로 특정문자 단위로 잘라서 여러 값을 받을 수 있다.
import java.util.Scanner;
public classMain {
public static void main (String args[]) {
Scanner sc = newScanner(System.in);
sc.useDelimiter(":"); // :기호 기준으로 구분하여 입력받는다는 의미
int a = sc.nextInt(); // :기호 나오기 전까지의 입력
int b = sc.nextInt(); // :기호 이후~마지막까지의 입력
System.out.println(a+"\n"+b);
}
}
<출력>
>> 39:27
39
27
split 함수 활용
한번에 문자열을 입력받은 다음 split(특정문자) 함수를 활용하여 자동으로 특정문자 단위로 자른뒤 각 값을 원소로 하는 배열을 받을 수 있다.
import java.util.Scanner;
public classMain {
public static void main (String args[]) {
Scanner sc = newScanner(System.in);
String s = sc.next(); // 문자열 입력
String[] strArr = s.split(":"); // :기호를 기준으로 배열로 나누기
System.out.println(strArr[0]+"\n"+strArr[1]);
}
}
<출력>0 글이 마음에 드시면 하트를 눌러주세요! 행복한 고민이 됩니다!
>> 39:27
39
27