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

  • boogie2988

    boogie2988

    6 NİSAN 2006
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • TomOdellVEVO

    TomOdellVEVO

    29 Mayıs 2012

İLGİLİ SORU / CEVAPLAR