Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menentukan dengan Cekap jika Rentetan Java Mewakili Integer?

Bagaimanakah Saya Boleh Menentukan dengan Cekap jika Rentetan Java Mewakili Integer?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 10:53:10922semak imbas

How Can I Efficiently Determine if a Java String Represents an Integer?

Menentukan sama ada String Mewakili Integer dalam Java

Di Java, persoalan mengenal pasti integer dalam tatasusunan String timbul apabila mengendalikan ungkapan kompleks. Di sini, kita akan meneroka kaedah untuk menentukan sama ada String yang diberikan layak sebagai integer.

Kaedah IsInteger

Pendekatan naif ialah melintasi String, mengesahkan bahawa setiap aksara ialah digit yang sah dalam radix yang ditentukan. Ini memastikan bahawa setiap elemen diteliti. Walau bagaimanapun, untuk tujuan praktikal, ia menawarkan kecekapan optimum:

public static boolean isInteger(String s) {
    return isInteger(s, 10);
}

public static boolean isInteger(String s, int radix) {
    if (s.isEmpty()) {
        return false;
    }
    for (int i = 0; i < s.length(); i++) {
        if (i == 0 && s.charAt(i) == '-') {
            if (s.length() == 1) {
                return false;
            } else {
                continue;
            }
        }
        if (Character.digit(s.charAt(i), radix) < 0) {
            return false;
        }
    }
    return true;
}

Pendekatan Perpustakaan Java

Sebagai alternatif, perpustakaan Java menawarkan mekanisme tanpa pengecualian:

public static boolean isInteger(String s, int radix) {
    Scanner sc = new Scanner(s.trim());
    if (!sc.hasNextInt(radix)) {
        return false;
    }
    // Ensures there's no remaining data after extracting the integer
    sc.nextInt(radix);
    return !sc.hasNext();
}

Teknik Bukan Standard

Bagi mereka yang mempunyai pendekatan yang ringan, teknik yang boleh dipersoalkan berikut menggunakan pengecualian pengendalian:

public static boolean isInteger(String s) {
    try {
        Integer.parseInt(s);
    } catch (NumberFormatException | NullPointerException e) {
        return false;
    }
    // Success if no exceptions occurred
    return true;
}

Sebagai kesimpulan, menentukan sama ada String mewakili integer dalam Java memerlukan pertimbangan yang teliti terhadap kecekapan dan gaya pelaksanaan. Kaedah yang dibincangkan memperkasakan anda dengan pelbagai pilihan yang disesuaikan dengan pelbagai senario.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan dengan Cekap jika Rentetan Java Mewakili Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn