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ş:
Java nasıl insan okunabilir biçime bay...
Java, nasıl sıfırları tutarken hex bas...
Nasıl Java Long int dönüştürebilirim?...
Java nasıl bir proje haline gelmesini ...
Nasıl açık Java edebilirim .okunabilir...