SORU
21 EYLÜL 2010, Salı


Dize uzunluğu nedenle eşit bölünmüş Java

Dize bölmek nasıl 2* *Java ile eşit büyüklükte alt dizeleri için. Örn. 4 "Thequickbrownfoxjumps" eşit boyutta çıktı vermelidir.

["Theq","uick","brow","nfox","jump","s"]

Benzer Soru:

Split string into equal-length substrings in Scala

CEVAP
21 EYLÜL 2010, Salı


Oldukça kolay kaba kuvvet ile bunu yapmak için:

public static List<String> splitEqually(String text, int size) {
    // Give the list the right capacity to start with. You could use an array
    // instead if you wanted.
    List<String> ret = new ArrayList<String>((text.length()   size - 1) / size);

    for (int start = 0; start < text.length(); start  = size) {
        ret.add(text.substring(start, Math.min(text.length(), start   size)));
    }
    return ret;
}

Bunun için bir düzenli ifade kullanarak değer olduğunu sanmıyorum.

EDİT: bir düzenli ifade kullanarak: Benim akıl

  • Bu gerçek yukarıdaki diyagram desen eşleştirme hiçbirini kullanmıyor. Sadece zaman ilerliyor.
  • Benşüpheliyukarıdaki çoğu durumda bir önemi olmayacak olsa da daha verimli olacaktır
  • Eğer farklı yerlerde değişken boyutları kullanmak istiyorsanız, ya tekrar ya da bir yardımcı işlevi normal ifade, kendini inşa etmek için var bir parametre - ick dayalı.
  • Normal ifade başka bir cevap sağlanan birincisi (geçersiz kaçan) derlemek yoktu, ve daha sonra işe yaramadı. Benim kod ilk kez çalıştı. Daha yukarıdaki diyagram kullanılabilirlik bir vasiyet vs düz kodu, IMO.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • TokShogun

    TokShogun

    6 HAZİRAN 2009
  • Tom Megalis

    Tom Megalis

    18 NİSAN 2006
  • UsherVEVO

    UsherVEVO

    15 EKİM 2009