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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • Liberator

    Liberator

    14 EYLÜL 2007
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007

İLGİLİ SORU / CEVAPLAR