我想编写一个将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) 我正在尝试将包含所有非字母数字字符的字符串拆分为分隔符,但Java的String.split()方法会丢弃结果数组中的分隔符字符.有没有办法像"\ W"正则表达式模式那样分割字符串,但保留分隔符?
我需要解析一些数据,我想转换
AutomaticTrackingSystem
Run Code Online (Sandbox Code Playgroud)
至
Automatic Tracking System
Run Code Online (Sandbox Code Playgroud)
基本上在任何大写字母之前放置一个空格(当然除了第一个)
我有这样的字符串String str = "la$le\\$li$lo".
我想拆分它以获得以下输出"la","le\\$li","lo".\ $是一个$转义所以它应该留在输出中.
但是,当我做 str.split("[^\\\\]\\$")ÿ得到"l","le\\$l","lo".
从我得到的我的正则表达式匹配$和i $然后删除.知道如何让我的角色回来吗?
谢谢
我想在一些分隔符上做一个Regex.Split,但我想保留分隔符.举一个我正在尝试的例子:
"abc[s1]def[s2][s3]ghi" --> "abc", "[s1]", "def", "[s2]", "[s3]", "ghi"
Run Code Online (Sandbox Code Playgroud)
我提出的正则表达式是new Regex("\\[|\\]|\\]\\[").但是,这给了我以下内容:
"abc[s1]def[s2][s3]ghi" --> "abc", "s1", "def", "s2", "", "s3", "ghi"
Run Code Online (Sandbox Code Playgroud)
分隔符已经消失(考虑到我的正则表达式,这是有意义的).有没有办法编写正则表达式,以便保留分隔符本身?