Java에서 String을 int로 변환하는 방법

Java에서 문자열을 정수로 변환하기 위한 유일한 요구 사항은 음수 "-" 또는 양수 "+" 값을 나타내는 첫 번째 문자를 제외하고 int 유형의 변수에 넣으려는 숫자만 포함해야 한다는 것입니다. 예를 들어, "-123"의 결과는 숫자 -123.
Many 캐스트하지만 java는 이를 허용하지 않습니다.

문자열에서 int로 캐스팅 할 수 없음< / a>< / div>

예외 Cannot cast from String to int는 Java 컴파일러가 String을 int로 캐스팅하는 것을 허용하지 않음을 의미합니다. 이것은 둘이 같은 유형이 아니기 때문에 의미가 있습니다.

The Integer

Integer 객체는 int 유형의 단일 특성을 포함합니다. 이 클래스에는 int를 String으로, String을 int.

1)로 변환하는 여러 메서드가 포함되어 있습니다. new Integer(String s)

를 인스턴스화하여 이 생성자는 정수를 포함하는 새 객체를 할당합니다.

public class Cast {

public static void main(String[] args) {
현 nbs = "12";
int nb;
nb = 새로운 정수(nbs);
System.out.println(nb);
}
}
Output:

12

2) Integer.valueOf(String s)

valueOf()java.lang.Integer 인수에 표시된 값을 포함합니다. String.

public class Cast {

public static void main(String[] args) {
String nbs = "12";
int nb;
nb = 새로운 정수(nbs);
System.out.println(nb);
}
}
Output:

12

3) Integer.parseInt(String s)

The parseInt()은 인수가 valueOf(문자열 s).

public class Cast {

public static void main(String[] args) {
문자열 nbs = "12";
int nb;
nb = 정수.parseInt(nbs);
System.out.println(nb);
}
}
출력:

12

Exception NumberFormatException thrown

NumberFormatException 는 전달된 인수가 올바른 형식이 아닌 경우 호출됩니다. 원인은 다음과 같습니다.
  • 전달된 인수에 숫자가 아닌 문자가 하나 이상 포함되어 있습니다.
  • 숫자는 float 12.4f.

절차 개선

프로그램이 종료되는 것을 방지하기 위해, 형식이 존중되지 않으면 기본값을 반환합니다.

public class Cast {

public static void main(String[] args) {
String nbs = "12.4s";
int nb;
System.out.println(stringToInt(nbs,0));
}

public static int stringToInt(String value, int _default) {
try {
return Integer.parseInt(value);
} catch (NumberFormatException e) {
return _default;
}
}
}
출력:

0
변수 nbs가 숫자가 아닌 경우 함수 stringToInt()은 기본적으로 0을 반환합니다.

References:
Oracle.com -  Integer
JRJC-문자열을 int