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

  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • thenewboston

    thenewboston

    4 ŞUBAT 2008
  • WestsideMrArO

    WestsideMrAr

    6 EKİM 2010