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

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • failblog

    failblog

    17 HAZİRAN 2008
  • Turkish Airlines

    Turkish Airl

    11 AĞUSTOS 2006

İLGİLİ SORU / CEVAPLAR