Java에서는 데이터의 유형 변환이 필요한 시나리오가 자주 발생합니다. String 유형 데이터를 Int 유형으로 변환하는 것은 두 가지 주요 변환 방법입니다.
1. ) 메서드
2. Integer.valueOf(String) 메서드를 사용합니다.
구체적인 데모는 다음과 같습니다.
public void convert() { // 1.使用Integer.parseInt(String) String str1 = "31"; Integer num1 = Integer.parseInt(str1); System.out.print("字符串31转换为数字:"); System.out.println(num1); // 2.使用Integer.valueOf(String) String str2 = "32"; Integer num2 = Integer.valueOf(str2); System.out.print("字符串32转换为数字:"); System.out.println(num2); }
실행 결과:
실행 결과에 따르면 두 가지 방법이 있습니다. 문자열을 정수로 변환할 수 있습니다.
하지만 이 두 가지 방법을 사용하려면 전제 조건이 있다는 점에 유의해야 합니다. 즉, 변환할 문자열의 내용은 순수 숫자여야 합니다.
위 데모에서 변환 대상 문자열은 "31", "32" 등 모두 순수 숫자로 구성된 문자열이라는 것을 어렵지 않게 찾을 수 있습니다. 프로그램에서 예외가 발생합니다.
아래 데모와 같이 문자열에 영문 소문자를 추가하고 코드 세그먼트를 try-catch 문으로 감싸서 발생할 수 있는 예외를 포착합니다. (문자가 포함된 문자열을 정수로 변환하면 디지털 형식 변환 예외가 발생한다는 것을 이미 알고 있으므로 NumberFormatException을 catch하도록 선택했습니다.)
public void convert() { // 1.Integer.parseInt(String) try { String str1 = "31a"; Integer num1 = Integer.parseInt(str1); System.out.print("字符串31a转换为数字:"); System.out.println(num1); } catch (NumberFormatException e) { System.out.println("Integer.parseInt(String)方法执行异常"); e.printStackTrace(); } // 1.Integer.valueOf(String) try { String str2 = "32b"; Integer num2 = Integer.valueOf(str2); System.out.print("字符串32b转换为数字:"); System.out.println(num2); } catch (NumberFormatException e) { System.out.println("Integer.valueOf(String)方法执行异常"); e.printStackTrace(); } }
실행 결과에서 볼 수 있듯이 이 코드는 Integer.parseInt( String) 메소드와 Integer 위치에서 NumberFormatException이 발생했습니다. 변환된 문자열에 영문자가 포함되어 있어 정수로 변환할 수 없기 때문입니다.
성능 비교
public static void convert() { // 1.Integer.parseInt(String) String str1 = "321"; long before1 = System.nanoTime(); Integer.parseInt(str1); long interval1 = System.nanoTime() - before1; System.out.print("Integer.parseInt(String)的执行时长(纳秒):"); System.out.println(interval1); // 1.Integer.valueOf(String) String str2 = "332"; long before2 = System.nanoTime(); Integer.valueOf(str2); long interval2 = System.nanoTime() - before2; System.out.print("Integer.valueOf(String)的执行时长(纳秒):"); System.out.println(interval2); }
이 중 Interval1과 Interval2의 값은 각각 이전 시스템 시간의 차이를 나타냅니다. 두 메소드를 실행한 후 단위는 나노초입니다. 여러 번 실행한 후에는 Integer.valueOf(String) 메소드의 실행 시간이 Integer.parseInt(String) 메소드보다 짧은 것을 알 수 있습니다. 성능이 더 좋아요
위 내용은 Java에서 문자열을 Int로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!