Java字符串替换两个小写字符串之间的空格

时间:2017-11-02 15:51:37

标签: java

如何使用java解析/清理字符串?

输入:“软件工程”

期望输出:“软件工程师”

我有这个正则表达式:"([a-z])\s([a-z])"。它可以找到字符串"t w""i n"。但是如何替换搜索到的字符串之间的空间?

System.out.println("Soft ware Engi neer".trim().replace("([a-z])\\s([a-z])", "$1$2"));

应打印:Software Engineer

上面的regex / replace在Notepad ++中工作正常。

2 个答案:

答案 0 :(得分:1)

将正则表达式与a lookahead and a lookbehind一起使用,并用空字符串替换空格:

System.out.println("Soft ware Engi neer".replaceAll("(?<=[a-z])\\s(?=[a-z])", ""));

此正则表达式匹配单个空格,前面是,后跟一个小写字符。字符本身包含在内。

Demo.

答案 1 :(得分:0)

将方法调用替换为replaceAll有效。

System.out.println("Soft ware Engi neer".trim().replaceAll("([a-z])\\s([a-z])", "$1$2"));