2018년 5월 13일 일요일

parseInt in java


int java.lang.Integer.parseInt(String s) throws NumberFormatException


  • parseInt

    public static int parseInt(String s)
                        throws NumberFormatException
    Parses the string argument as a signed decimal integer. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value or an ASCII plus sign '+' ('\u002B') to indicate a positive value. The resulting integer value is returned, exactly as if the argument and the radix 10 were given as arguments to the parseInt(java.lang.String, int) method.
    Parameters:
    s - a String containing the int representation to be parsed
    Returns:
    the integer value represented by the argument in decimal.
    Throws:
    NumberFormatException - if the string does not contain a parsable integer.

문자(String)를 숫자(integer)로 변경하는 하는 함수 입니다.
만약 당신이 함수 설계자라고 가정합시다. 리턴값을 한개밖에 전달 못하니 돌려 받는 값은 변환된 값이고 만약 숫자가 아니이서 변경하지 못할때 어떻게 할까요? 그래서 Exception을 발생 시키는 것입니다.
문자를 변환시키는것은 다른 형태의 데이터를 읽어서 변환하는 경우가 많기 때문에 입력이 숫자만이 아닌 경우도 종종 있습니다. (입력 format이 변경된다던지...)

따라서 숫자로 변환할 수 없는 경우에는 NumberFormatException 이 발생하기 때문에 NumberFormatException 꼭 catch해서 사용하기 바랍니다.


문자열 앞뒤에 공백이 있어도 안됩니다. trim() 메소드로 공백을 제거해주세요.
아래 몇가지 예를 만들었습니다. 참고하세요.

parseInt 예제
public class Test1005 {

 public static void main(String[] args) {
  int number;
  System.out.println("1)");
  number = Integer.parseInt("123");
  System.out.println(number);
  System.out.println("2)");
  number = Integer.parseInt("-123");
  System.out.println(number);
  System.out.println("3)");
  number = Integer.parseInt("+123");
  System.out.println(number);
  System.out.println("4)");
  number = Integer.parseInt(" 123 ".trim());
  System.out.println(number);
  try{
   System.out.println("5)");
   number = Integer.parseInt(" 123 ");
   System.out.println(number);
  }catch(NumberFormatException e) {
   System.out.println(e);
  }
  try{
   System.out.println("6)");
   number = Integer.parseInt("123 ");
   System.out.println(number);
  }catch(NumberFormatException e) {
   System.out.println(e);
  }
  try{
   System.out.println("7)");
   number = Integer.parseInt("1.123");
   System.out.println(number);
  }catch(NumberFormatException e) {
   System.out.println(e);
  }
  try{
   System.out.println("8)");
   number = Integer.parseInt("");
   System.out.println(number);
  }catch(NumberFormatException e) {
   System.out.println(e);
  }
  try{
   System.out.println("9)");
   number = Integer.parseInt(null);
   System.out.println(number);
  }catch(NumberFormatException e) {
   System.out.println(e);
  }
 }
}

실행결과
1)
123
2)
-123
3)
123
4)
123
5)
java.lang.NumberFormatException: For input string: " 123 "
6)
java.lang.NumberFormatException: For input string: "123 "
7)
java.lang.NumberFormatException: For input string: "1.123"
8)
java.lang.NumberFormatException: For input string: ""
9)
java.lang.NumberFormatException: null

댓글 없음:

댓글 쓰기