>Java >java지도 시간 >Java 문자열이 정수를 나타내는지 확인하는 더 효율적인 방법이 있습니까?

Java 문자열이 정수를 나타내는지 확인하는 더 효율적인 방법이 있습니까?

DDD
DDD원래의
2024-12-11 10:41:17554검색

Is There a More Efficient Way to Check if a Java String Represents an Integer?

Java에서 문자열이 정수를 나타내는지 효과적으로 확인하는 방법

문자열에 정수 값이 포함되어 있는지 확인하는 것이 일반적입니다. 프로그래밍 작업. Integer.parseInt()를 사용하고 잠재적인 예외를 처리하는 전통적인 접근 방식은 안정적이지만 다소 번거로울 수 있습니다. 이 기사에서는 향상된 성능을 제공하는 대체 솔루션을 살펴봅니다.

대체 접근 방식

Jonas Klemming의 제안은 기존 방법에 대한 효율적인 대안을 제공합니다. 이 함수는 문자열의 각 문자를 순차적으로 검사하여 해당 문자가 숫자 범위(0~9) 내에 있는지 확인합니다. 코드는 다음과 같습니다.

public static boolean isInteger(String str) {
    if (str == null) {
        return false;
    }
    int length = str.length();
    if (length == 0) {
        return false;
    }
    int i = 0;
    if (str.charAt(0) == '-') {
        if (length == 1) {
            return false;
        }
        i = 1;
    }
    for (; i < length; i++) {
        char c = str.charAt(i);
        if (c < '0' || c > '9') {
            return false;
        }
    }
    return true;
}

성능 분석

광범위한 벤치마킹을 통해 이 대체 접근 방식이 특히 처리 시 Integer.parseInt()보다 훨씬 뛰어난 것으로 나타났습니다. 정수가 아닌 데이터로. 이렇게 향상된 성능은 함수가 구문 분석 및 예외 처리와 관련된 오버헤드를 우회하여 문자열의 문자를 직접 검사한다는 사실에 기인합니다.

결론

기존 정수 .parseInt() 메서드는 정수 유효성 검사를 위한 간단한 옵션이며 Jonas Klemming의 대체 솔루션은 정확성을 저하시키지 않으면서 성능 이점을 제공합니다. 효율성이 중요한 애플리케이션의 경우, 특히 대량의 정수가 아닌 데이터를 처리할 때 대체 접근 방식이 적합한 선택입니다.

위 내용은 Java 문자열이 정수를 나타내는지 확인하는 더 효율적인 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.