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

  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Triune Films

    Triune Films

    9 ŞUBAT 2006
  • wowchick16

    wowchick16

    17 Mart 2007