SORU
15 Aralık 2010, ÇARŞAMBA


Arasındaki fark() maçları ve Bul() Java Düzenli ifade içinde

matches() find() arasındaki farkı anlamaya çalışıyorum.

Göre Javadoc (anladığım kadarıyla), matches() arama tüm dize bile ne bulursa onu arıyor, ve find() bırak zaman ne bulursa onu arıyor.

Eğer bu varsayım doğru ise, bulduğu eşleşme sayısını saymak istemiyorsanız find() yerine matches() kullanmak istediğiniz zaman göremiyorum.

Benim opionon String sınıfı, daha sonra dahili bir yöntem olarak matches() yerine find() olmalıdır.

Özetlemek gerekirse:

  1. Benim varsayım doğru mu?
  2. find() yerine matches() kullanmak için yararlıdır?

CEVAP
15 Aralık 2010, ÇARŞAMBA


matches çalışır eşleşen ifade karşı tüm dize ve örtülü olarak Ekle a ^ başlangıç ve $ sonunda, bir desen, bir anlamı olmaz bakmak için bir dize. Bu kod çıktı bu yüzden:

public static void main(String[] args) throws ParseException {
    Pattern p = Pattern.compile("\\d\\d\\d");
    Matcher m = p.matcher("a123b");
    System.out.println(m.find());
    System.out.println(m.matches());

    p = Pattern.compile("^\\d\\d\\d$");
    m = p.matcher("123");
    System.out.println(m.find());
    System.out.println(m.matches());
}

/* output:
true
false
true
true
*/

123 find() yöntemi true değerini verir a123b bir dize. matches() '' 123 ve böylece çıkışlar yanlış. aynı değil a123b görür

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • Murray Winiata

    Murray Winia

    2 ŞUBAT 2009
  • Pituvision

    Pituvision

    11 Mart 2006