我想编写一个将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) 我正在使用此函数将CamelCase转换为虚线字符串:
function camel2dashed($className) {
return strtolower(preg_replace('/([^A-Z-])([A-Z])/', '$1-$2', $className));
}
Run Code Online (Sandbox Code Playgroud)
它有点工作但是当我有前任时有问题.这个字符串:getADog
.它返回get-adog
但我想要get-a-dog
我该如何更改我的代码?谢谢
我现在有一个方法将我的驼峰案例字符串转换为蛇案例,但它分为三个调用preg_replace()
:
public function camelToUnderscore($string, $us = "-")
{
// insert hyphen between any letter and the beginning of a numeric chain
$string = preg_replace('/([a-z]+)([0-9]+)/i', '$1'.$us.'$2', $string);
// insert hyphen between any lower-to-upper-case letter chain
$string = preg_replace('/([a-z]+)([A-Z]+)/', '$1'.$us.'$2', $string);
// insert hyphen between the end of a numeric chain and the beginning of an alpha chain
$string = preg_replace('/([0-9]+)([a-z]+)/i', '$1'.$us.'$2', $string);
// Lowercase
$string = strtolower($string);
return $string;
}
Run Code Online (Sandbox Code Playgroud)
我编写了测试来验证其准确性,并且它可以正常使用以下输入数组(array('input' => 'output')
):
$test_values = [
'foo' …
Run Code Online (Sandbox Code Playgroud) 在R中,我想转换
c("ThisText", "NextText")
Run Code Online (Sandbox Code Playgroud)
至
c("this.text", "next.text")
Run Code Online (Sandbox Code Playgroud)