Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menentukan Secara Berkesan jika Rentetan Java Mewakili Integer?

Bagaimanakah Saya Boleh Menentukan Secara Berkesan jika Rentetan Java Mewakili Integer?

Barbara Streisand
Barbara Streisandasal
2024-12-09 01:26:14533semak imbas

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

Tentukan jika String Mewakili Integer dalam Java

Java tidak menyediakan kaedah mudah untuk menyemak sama ada rentetan ialah integer. Walau bagaimanapun, terdapat pelbagai pendekatan untuk mencapai ini:

Kaedah Naif:

Lelaran melalui rentetan dan pastikan semua aksara adalah digit yang sah untuk radix yang diberikan. Ini ialah kaedah yang paling cekap kerana ia memeriksa setiap aksara sekali sahaja.

Kaedah Berasaskan Perpustakaan:

Gunakan kelas Pengimbas Java untuk menyemak sama ada rentetan itu boleh dihuraikan sebagai integer bagi radix yang ditentukan. Kaedah ini lebih mahal daripada pendekatan naif tetapi mengendalikan pelbagai keadaan ralat.

Kaedah Pengendalian Pengecualian:

Gunakan kaedah parseInt bagi kelas Integer. Jika penghuraian berjaya, rentetan mewakili integer. Walau bagaimanapun, kaedah ini memberikan pengecualian untuk input tidak sah, yang mungkin tidak diingini.

Berikut ialah contoh pelaksanaan kaedah naif:

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;
}

Akhirnya, kaedah terbaik untuk digunakan bergantung pada keperluan prestasi dan sama ada pengendalian pengecualian diutamakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Secara Berkesan 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