SORU
1 NİSAN 2010, PERŞEMBE


Nasıl Java okunabilir isimleri CamelCase haline dönüştürebilirim?

Okunabilir bir isim haline CamelCase dönüştüren bir yöntem yazmak istiyorum.

İşte test durumu:

public void testSplitCamelCase() {
    assertEquals("lowercase", splitCamelCase("lowercase"));
    assertEquals("Class", splitCamelCase("Class"));
    assertEquals("My Class", splitCamelCase("MyClass"));
    assertEquals("HTML", splitCamelCase("HTML"));
    assertEquals("PDF Loader", splitCamelCase("PDFLoader"));
    assertEquals("A String", splitCamelCase("AString"));
    assertEquals("Simple XML Parser", splitCamelCase("SimpleXMLParser"));
    assertEquals("GL 11 Version", splitCamelCase("GL11Version"));
}

CEVAP
1 NİSAN 2010, PERŞEMBE


Bu testcases ile çalışır:

static String splitCamelCase(String s) {
   return s.replaceAll(
      String.format("%s|%s|%s",
         "(?<=[A-Z])(?=[A-Z][a-z])",
         "(?<=[^A-Z])(?=[A-Z])",
         "(?<=[A-Za-z])(?=[^A-Za-z])"
      ),
      " "
   );
}

İşte bir test koşum:

    String[] tests = {
        "lowercase",        // [lowercase]
        "Class",            // [Class]
        "MyClass",          // [My Class]
        "HTML",             // [HTML]
        "PDFLoader",        // [PDF Loader]
        "AString",          // [A String]
        "SimpleXMLParser",  // [Simple XML Parser]
        "GL11Version",      // [GL 11 Version]
        "99Bottles",        // [99 Bottles]
        "May5",             // [May 5]
        "BFG9000",          // [BFG 9000]
    };
    for (String test : tests) {
        System.out.println("["   splitCamelCase(test)   "]");
    }

Sıfır uzunlukta geriye ilerleme ve lookforward ile düzenli nerede boşluk eklemek bulmaya erişebilirsiniz. Temelde 3 desenler vardır, ve String.format onlarla birlikte daha kolay okunur hale getirmek için kullanıyorum.

Üç desenleri:

Arkamda UC, UC önümde LC izledi

  XMLParser   AString    PDFLoader
    /\        /\           /\

olmayan UC arkamda, karşımda UC

 MyClass   99Bottles
  /\        /\

Arkamda mektup, mektup sigara önümde

 GL11    May5    BFG9000
  /\       /\      /\

Referanslar

İlgili sorular

Sıfır-uzunluk bölmek eşleşen lookarounds kullanarak:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • lifeisforsharingDT

    lifeisforsha

    18 Mayıs 2011
  • RawBrahs

    RawBrahs

    28 Aralık 2010