본문 바로가기

Programming/Java

자바로 문자 또는 숫자 입력 받기


Scanner s1 = new Scanner(System.in);
Scanner s2 = new Scanner(System.in);

int val1 = s1.nextInt();
int val2 = s2.nextInt();

위와 같이 하면 두번의 입력을 받으며 int형으로 입력을 받게 된다.

int형은 문제 없이 입력을 잘 받지만..
char형과 String형에서 입력을 받을때 큰 문제가 발생한다..

고작 계산기 만드는데서 막히다니..

String형으로 입력을 받는 방법은

String str1 = s1.next();
String str2 = s2.nextLine();

두가지 방법이 있다..
하지만 이렇게 받았을 경우에 입력을 한뒤 엔터값이 같이 들어가므로 따로 처리를 해줘야 한다.
책을 찾아보았으니 뾰족한 답이 없었다. 입력을 두번받으면 된다 이렇게 나와있지만.
해보니 되지 않아서.. 다른 방법을 찾아봤다.

System.in.read(); 라는 입력을 받는 방법이 있었다.
위의 방법을 써서 연산자를 입력받아 보겠다!

char str = (char)System.in.read();

※read를 써서 받게 되면 아스키코드값으로 받기 때문에 int형으로 출력할려면 -48을 해줘야 한다.
   그리고 하나의 문자밖에 받지 못하므로 문자열을 받을려면 Scanner를 사용해야 한다!

위와 같이 하면 문제없이 연산자를 받아줄수 있다!
C처럼 scanf가 없는게 아쉬울뿐이다..ㅠㅠ