콘텐츠로 건너뛰기

[Java] 입력

자바에서는 Scanner를 이용하여 입력을 받을 수 있다.
다만, 불편하게도 이것을 이용하기 위해서는 Main함수 바깥에 java.util.Scannerimport 해야한다.

그리고 이후, 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);
}
}

변수에 따라 입력받기 위하여 활용되는 함수는 다음과 같다.

  1. 정수형 입력: sc.nextInt( )
  2. 실수형 입력: sc.nextDouble( )
  3. 문자열형 입력: sc.next( )
  4. 문자형 입력: 없음. * 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]);
}
}
<출력>
>> 39:27
39
27
0 글이 마음에 드시면 하트를 눌러주세요! 행복한 고민이 됩니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다