我想编写一个将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) 我在分裂方面遇到了问题String.
我想String用一些分隔符拆分一个但不丢失该分隔符.
当我们somestring.split(String separator)在Java中使用方法时,它会拆分String但从中删除分隔符部分String.我不希望这种情况发生.
我想要如下结果:
String string1="Ram-sita-laxman";
String seperator="-";
string1.split(seperator);
Run Code Online (Sandbox Code Playgroud)
输出:
[Ram, sita, laxman]
Run Code Online (Sandbox Code Playgroud)
但我希望结果如下所示:
[Ram, -sita, -laxman]
Run Code Online (Sandbox Code Playgroud)
有没有办法获得这样的输出?
我正在尝试将包含所有非字母数字字符的字符串拆分为分隔符,但Java的String.split()方法会丢弃结果数组中的分隔符字符.有没有办法像"\ W"正则表达式模式那样分割字符串,但保留分隔符?
我有这样的字符串String str = "la$le\\$li$lo".
我想拆分它以获得以下输出"la","le\\$li","lo".\ $是一个$转义所以它应该留在输出中.
但是,当我做 str.split("[^\\\\]\\$")ÿ得到"l","le\\$l","lo".
从我得到的我的正则表达式匹配$和i $然后删除.知道如何让我的角色回来吗?
谢谢
我可以像这样插入简单的文字:
document = new PDDocument();
page = new PDPage(PDPage.PAGE_SIZE_A4);
document.addPage(page);
PDPageContentStream content = new PDPageContentStream(document, page);
content.beginText();
content.moveTextPositionByAmount (10 , 10);
content.drawString ("test text");
content.endText();
content.close();
Run Code Online (Sandbox Code Playgroud)
但是如何使用width属性创建类似于HTML的段落?
<p style="width:200px;">test text</p>
Run Code Online (Sandbox Code Playgroud) 你能在后视镜中使用反向引用吗?
假设我想split在我身后的任何地方重复两次角色.
String REGEX1 = "(?<=(.)\\1)"; // DOESN'T WORK!
String REGEX2 = "(?<=(?=(.)\\1)..)"; // WORKS!
System.out.println(java.util.Arrays.toString(
"Bazooka killed the poor aardvark (yummy!)"
.split(REGEX2)
)); // prints "[Bazoo, ka kill, ed the poo, r aa, rdvark (yumm, y!)]"
Run Code Online (Sandbox Code Playgroud)
使用REGEX2(其中反向引用嵌套在lookbehind中的前瞻)可以工作,但REGEX1在运行时会出现此错误:
Look-behind group does not have an obvious maximum length near index 8
(?<=(.)\1)
^
Run Code Online (Sandbox Code Playgroud)
这个排序是有意义的,我想,因为在一般的反向引用可以捕捉任何长度的字符串(如果正则表达式编译器是有点聪明,但是,它可以判断\1是(.)在这种情况下,因此具有有限的长度).
那么有没有办法在后视镜中使用反向引用?
如果没有,你可以使用这个嵌套的前瞻来解决它吗?还有其他常用技术吗?
你如何分割一串单词并保留空格?
这是代码:
String words[] = s.split(" ");
Run Code Online (Sandbox Code Playgroud)
字符串包含: hello world
代码运行后,单词[]包含: "hello" "" world
理想情况下,它不应该是中间的空字符串,但包含两个空格:words []应该是: "hello" " " " " world
我怎样才能得到这个结果?
我有一个看起来像这样的java字符串;
(fname:jon)(lname:doe)(guaranteer: Sam (W) Willis)(age:35)(addr:1 Turnpike Plaza)(favcolor:blue)
Run Code Online (Sandbox Code Playgroud)
我想从分隔符中拆分这个String (fname:jon)<here>(lname:doe).
我尝试通过正则表达式进行拆分,\)\(但它只是破坏了我的代码
arr = s.split("\\)\\(");
for (String a: arr) System.out.println(a);
Run Code Online (Sandbox Code Playgroud)
产量
(fname:jon
lname:doe
guaranteer: Sam (W) Willis
age:35
addr:1 Turnpike Plaza
favcolor:blue)
Run Code Online (Sandbox Code Playgroud)
我也看了这个问题:如何拆分字符串,还要保留分隔符?,但它没有帮助,因为在我的情况下,我想要)(均匀地保持分隔符和分割分隔符,即,第一个括号应该是第一个结果,第二个到第二个结果.
我使用的正则表达式是s.split("(?<=\\)\\()")它给出了输出:
(fname:jon)(
lname:doe)(
guaranteer: Sam (W) Willis)(
age:35)(
addr:1 Turnpike Plaza)(
favcolor:blue)
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出:
(fname:jon)
(lname:doe)
(guaranteer: Sam (W) Willis)
(age:35)
(addr:1 Turnpike Plaza)
(favcolor:blue)
Run Code Online (Sandbox Code Playgroud) 说我有一个字符串
"Hello! How do you do? Good day!"
我想分割它,我的分隔符是:?并且!
使用"split"函数,结果将是:
`[Hello, How do you do, Good day]`
Run Code Online (Sandbox Code Playgroud)
但是,我希望它是:
`[Hello, !, How do you do, ?, Good day, !]`
Run Code Online (Sandbox Code Playgroud) 我正在尝试重新创建不和谐的表情符号解析消息的方式。
例如,我希望消息Hello, :smile::hearth: world!拆分为以下数组:
["Hello, ", ":smile:", ":hearth:", " world!"]
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用以下代码拆分数组:
Arrays.toString(message.split("(:[A-Za-z]+:)"))
Run Code Online (Sandbox Code Playgroud)
但是,split方法会删除找到的定界符。因此最终结果如下所示:
["Hello", , , " world!"]
Run Code Online (Sandbox Code Playgroud)