SORU
3 AĞUSTOS 2009, PAZARTESİ


Nasıl bir dizenin ilk karakteri sayı mı?

Java bir yolu var eğer bir dizenin ilk karakteri bir sayı olup olmadığını öğrenmek için mi?

Tek yoldur

string.startsWith("1")

ve çok verimsiz görünüyor 9, ama başından sonuna kadar yukarıda.

Edit: Cevap sonra, bunun için de düzenli bir yolunu buldum:

s.substring(0,1).matches("[0-9]")

CEVAP
3 AĞUSTOS 2009, PAZARTESİ


Character.isDigit(string.charAt(0))

this will allow any Unicode digit sadece 0-9 unutmayın. Tercih edebilirsiniz:

char c = string.charAt(0);
isDigit = (c >= '0' && c <= '9');

Ya da daha düzenli çözümler:

s.substring(0, 1).matches("\\d")
// or the equivalent
s.substring(0, 1).matches("[0-9]")

Ancak, bu yöntemlerin herhangi biriyle, ilk dize boş olmadığından emin olmalısınız. Eğer öyle ise, charAt(0) substring(0, 1) StringIndexOutOfBoundsException bir durum oluşturur. startsWith Bu sorun yok.

Tüm bu durum bir çizgi ve uzunluk kontrolleri önlemek için, aşağıdaki yukarıdaki diyagram değiştirebilirsiniz:

s.matches("\\d.*")
// or the equivalent
s.matches("[0-9].*")

Eğer bu durum sizin programda sıkı bir döngüde görünmüyor değil, küçük performansını düzenli ifadeler kullanmak için çarptığını fark olması muhtemel değildir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • hidetake takayama

    hidetake tak

    3 Mart 2009