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

  • L- Crysis

    L- Crysis

    30 Aralık 2011
  • LimeFire

    LimeFire

    2 ŞUBAT 2012
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009