我想编写一个将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) 我正在使用正则表达式
System.Text.RegularExpressions.Regex.Replace(stringToSplit, "([A-Z])", " $1").Trim()
Run Code Online (Sandbox Code Playgroud)
用大写字母拆分字符串,例如:
'MyNameIsSimon'成为'我的名字是西蒙'
在使用枚举时,我发现这非常有用.我想要做的是稍微更改它,以便只有当下一个字母是小写字母时才拆分字符串,例如:
'USAToday'将成为'今日美国'
可以这样做吗?
编辑:感谢大家的回应.我可能没有完全想到这一点,在某些情况下'A'和'I'需要被忽略,但这是不可能的(至少不是以一种有意义的方式).在我的情况下,虽然下面的答案做我需要的.谢谢!