SORU
25 EKİM 2008, CUMARTESİ


'in ne kontrol etmek için en iyi yolu, bir Dize görmek için Java'da bir tamsayı temsil eder?

Ben normalde aşağıdaki deyim, bir Dize bir tamsayı dönüştürülebilir olmadığını kontrol etmek için kullanın.

public boolean isInteger( String input ) {
    try {
        Integer.parseInt( input );
        return true;
    }
    catch( Exception e ) {
        return false;
    }
}

Sadece bana mı öyle geliyor yoksa bu biraz hackish görünüyor mu? Daha iyi bir yolu nedir?


Benim cevabım (örnek: CodingWithSpike earlier answer dayalı) benim durum tersine döndü ve bu sorun için Jonas Klemming's answer kabullendim neden görmek için. Bu orijinal kod uygulamak için daha hızlı ve daha rahat, çünkü çoğu insan tarafından kullanılan olacağını düşünüyorum, ama büyüklük olmayan tamsayı veri sağlandığında, daha yavaş.

CEVAP
25 EKİM 2008, CUMARTESİ


Eğer potansiyel taşması sorunlarla ilgili değilse, bu işlevi, Tamsayı kullanarak daha 20-30 kat daha hızlı gerçekleştirir.() parseınt.

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 <= '/' || c >= ':') {
			return false;
		}
	}
	return true;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012
  • tinycammonitor

    tinycammonit

    14 Aralık 2010
  • Unbox Therapy

    Unbox Therap

    21 Aralık 2010

İLGİLİ SORU / CEVAPLAR