스터디사이트 : https://www.hackerrank.com



JAVA Basic : 예외 - String과 Integer



※ 조건


  • 입력받는 문자가 Integer형이면 String-to-Integer문을 사용하고, Integer형이 아닐 때의 예외 발생 생성자를 만들 것.
    → 입력받는 문자가 String형이면, "Bad String"을 출력할 것
  • 반복문이나 조건문을 사용하면 안된다.


Scanner 입력받는 변수

String S;

S의 길이 : 1~6자리

구성 : 0~9 숫자 아니면 소문자로



입력 1

3

출력 1

3


입력 2

za

출력 2

Bad String



디버깅1

어떻게 반복문을 쓰지않고, 조건문을 쓰지 않고 이것이 문자인지 숫자인지 알리오.. 라고 고민하던 중 불현듯 떠오른

try-catch문.. ㅋ

알아내야 할 것은 catch 조건 괄호 안에 들어갈 Exception 클래스가 어떤 것인지 알아내는 것 뿐이다..



코딩연습

1
2
3
4
5
6
7
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        String input=scan.next();
 
        System.out.println(Integer.parseInt(input));
    }
cs

결과 : 

Exception in thread "main" java.lang.NumberFormatException: For input string: "s"

at java.lang.NumberFormatException.forInputString(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at hackerrank.July15_Exception.main(July15_Exception.java:12)

이로써 Exception클래스가 어떤 것인지 알게 되었다.. ㅎ



결과

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        String input=scan.next();
 
        try{
            System.out.println(Integer.parseInt(input));
        }catch(NumberFormatException e){
            System.out.println("Bad String    ");
        }
    }
cs

결과 : 

입력 '3' : 3

입력 'za' : Bad String


+ Recent posts