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

  • Felice Musique

    Felice Musiq

    22 NİSAN 2014
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008
  • UberFacts

    UberFacts

    26 EKİM 2013

İLGİLİ SORU / CEVAPLAR