Haekt‘s log

[JAVA] 스캐너 클래스를 이용한 인수 입력 & args 입력 본문

언어/JAVA

[JAVA] 스캐너 클래스를 이용한 인수 입력 & args 입력

Haekt 2022. 10. 3. 16:47

자바에도 C 의 scanf 와 같이 사용자 입력값을 받는 방법이 존재한다. 

 

java.util.Scanner 에 존재하는 Scanner 클래스를 사용하면 사용자 입력값을 받을 수 있다 .

 

- Scanner Class 메소드


https://hijjang2.tistory.com/79

 

 

- Scanner Class  사용법


import java.util.*

java.util을 import 해서 사용이 가능하다. 

 

 

Scanner s= new Scanner(System.in); // 잆력한 값을 Scanner 클래스에 System.in 으로 넣어준다.

스캐너 클래스 변수를 만들고, System.in 으로 사용자 입력값을 Scanner 변수에 넣어준다.

 

* System.in 은 키보드로부터 입력을 받는다고 알면 된다. Scanner 클래스는 키보드로 입력받겠다는 뜻.

 

 

String a1 = s.next();  // next() 함수로 첫번째 인자를 받아 저장한다.
String a2 = s.nextLine(); // next()함수와 동일하나, 공백을 나누지 않고 포함하여 저장한다.
int a3 = s.nextInt();  // nextInt() 함수로 두번째 인자를 받아 저장한다.
double a4 = s.nextDouble(); // nextDouble() 함수로 세번째 인자를 받아 저장한다.

사용자 입력이 담겨진 Scanner 변수에서 next() 함수를 이용해 첫번째 값을 가져온다. 

이때 사용자가 입력한 입력값을 공백(/t 등)을 기준으로 나눠 가져온다 .

 

* 메소드의 종류는 상단에서 설명

 

 

-예시
import java.util.*;

public class test2 {

	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		String a1=s.next();
		int a2= s.nextInt();
		double a3=s.nextDouble();
		
		System.out.println(a1);
		System.out.println(a2*2);
		System.out.println(a3*2);

	}//main

}// class

 

-결과

 

 

 

- args 사용법


 

Scanner 클래스 외에 main 함수에 존재하는  args 인자를 이용하여 사용자 입력값을 받는 방법이 존재한다. 

 

public static void main(String[] args) { // 메인의 args 이용해 인수를 받음
	
	String s1 = args[0];
    	String s2 = args[1];
    	System.out.println(s1+","+s2);
    
}

위와 같이 args 를 이용해 사용자 입력값을 받을 수 있다. 

Scanner 와 마찬가지로, 공백이나 탭을 통해 인자를 구분한다.

 

* args 의 자료형은 String 이므로 int 로 받고 싶다면 Integer.parseInt() 를 사용해 int 형으로 받으면 된다.

 

 

 

 

*번외  -   터미널 필요없이 이클립스에서 사용자 입력하기

 

사용자 입력값을 이클립스 자체에서 처리하는 방법이다.

 

위 코드를 이클립스에서 그냥 실행하면 오류가 난다. 

 

이클립스 상단바에 위치한 실행아이콘 옆의 삼각형을 눌러준다. 

Run Configurations 를 눌러준다.

 

왼쪽의 탭에서 인자를 입력할 파일을 선택하고, Arguments 에 들어가 원하는 값을 입력한다. 

 

그리고 나와서 실행하면 정상적으로 인자를 받는 것을 볼 수 있다.

 

'언어 > JAVA' 카테고리의 다른 글

[JAVA] 접근 제어  (2) 2022.10.03
[JAVA] 변수 상수 처리하기  (1) 2022.10.03
[JAVA] 예외처리( Exception ) 하는법  (1) 2022.10.02
[JAVA] 문자열 & 문자열버퍼 관련 함수 정리  (1) 2022.10.02
[JAVA] new 연산자란 ?  (1) 2022.10.01
Comments