HOWTO · Java

Java에서 문자열을 int로 변환하는 방법

이 기사에서는 Java에서 String을 int로 변환하는 방법을 소개합니다.

이 페이지의 내용

이 튜토리얼에서는 Java에서String을int로 변환하는 방법을 소개하고이를 이해하기위한 몇 가지 예제 코드를 나열합니다.

Java에서parseInt()를 사용하여String을int로 변환

String과int는 모두 Java의 데이터 유형입니다. String은 텍스트 정보를 저장하는 데 사용되며int는 숫자 데이터를 저장하는 데 사용됩니다.

여기서는 정수를 반환하는Integer 클래스의parseInt()메서드를 사용합니다. Java는 암시 적 자동 박싱을 수행하므로 int 기본 유형에 저장할 수 있습니다. 아래 예를 참조하십시오.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1234";
    int int_val = Integer.parseInt(str);
    System.out.println(int_val);
  }
}

출력:

1234

Java에서Apache를 사용하여String을int로 변환

Apache 라이브러리로 작업하는 경우 int 값을 반환하는NumberUtils 클래스의toInt()메서드를 사용할 수 있습니다. 전달 된 문자열에 숫자가 아닌 문자가 포함 된 경우이 메서드는 예외를 throw하지 않지만 0을 반환합니다. NumberFormatException을 발생시키는parseInt()보다는toInt()를 사용하는 것이 안전합니다. 아래 예를 참조하십시오.

import org.apache.commons.lang3.math.NumberUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1234";
    int int_val = NumberUtils.toInt(str);
    System.out.println(int_val);
    str = "1234x"; // non-numeric string
    int_val = NumberUtils.toInt(str);
    System.out.println(int_val);
  }
}

출력:

1234
0

Java에서decode()를 사용하여String을int로 변환

Integer 클래스의decode()메서드를 사용하여 문자열에서 int 값을 가져올 수 있습니다. Integer 값을 반환하지만int (primitive) 값을 얻으려면decode()메서드와 함께intValue()를 사용합니다. 아래 예를 참조하십시오.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.decode(str);
    System.out.println(int_val);
    // int primitive
    int_val = Integer.decode(str).intValue();
    System.out.println(int_val);
  }
}

출력:

1424

Java에서valueOf()를 사용하여String을int로 변환

변환 후 문자열의 int 값을 얻기 위해valueOf()메소드를 사용할 수 있습니다.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.valueOf(str);
    System.out.println(int_val);
  }
}
1424 1424

Java에서parseUnsignedInt()를 사용하여String을int로 변환

부호가없는 문자열을 변환하려면parseUnsignedInt()메서드를 사용하여 int 값을 가져옵니다. 서명되지 않은 문자열 값으로 잘 작동하며 값이 서명되면 예외가 발생합니다.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.parseUnsignedInt(str);
    System.out.println(int_val);
  }
}

출력:

1424

Java에서replaceAll()을 사용하여 숫자가 아닌 문자를 제거한 후String 변환

문자열에 숫자가 아닌 문자가 포함 된 경우 regex와 함께 String클래스의 replaceAll()메서드를 사용하여 숫자가 아닌 문자를 모두 제거한 다음 Integer클래스의 parseInt()메서드를 사용하여 동등한 정수 값을 가져옵니다. 아래 예를 참조하십시오.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424x";
    str = str.replaceAll("[^\\d]", "");
    int int_val = Integer.parseInt(str);
    System.out.println(int_val);
  }
}

출력:

1424