我想编写一个将CamelCase转换为人类可读名称的方法.
这是测试用例:
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"));
}
Run Code Online (Sandbox Code Playgroud) 我有一个只有一个组的正则表达式模式.我需要在模式后面的输入字符串中查找文本并仅替换匹配组1.例如,我有正则表达式模式和要应用的字符串,如下所示.替换字符串是"<---->"
Pattern p = Pattern.compile("\\w*(lan)\\w+");
Matcher m = p.matcher("plan plans lander planitia");
Run Code Online (Sandbox Code Playgroud)
预期的结果是
plan p<--->s <--->der p<--->itia
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法
String test = "plan plans lander planitia";
Pattern p = Pattern.compile("\\w*(lan)\\w+");
Matcher m = p.matcher(test);
String result = "";
while(m.find()){
result = test.replaceAll(m.group(1),"<--->");
}
System.out.print(result);
Run Code Online (Sandbox Code Playgroud)
这给出了结果
p<---> p<--->s <--->der p<--->itia
Run Code Online (Sandbox Code Playgroud)
另一种方法
String test = "plan plans lander planitia";
Pattern p = Pattern.compile("\\w*(lan)\\w+");
Matcher m = p.matcher(test);
String result = "";
while(m.find()){
result = test.replaceAll("\\w*(lan)\\w+","<--->");
}
System.out.print(result);
Run Code Online (Sandbox Code Playgroud)
结果是
plan <---> <---> <--->
Run Code Online (Sandbox Code Playgroud)
我已经通过了 …