我有一个字符串" parent / child1 / child2"。我希望将其输出为" parent / child1 / child2"删除其间的空白区域。
我是按照以下方式做的。我怎么能用lambda表达式来做呢?
String absoluteName = "";
for(String name : Parent.getNames.split("/")) {
if(absoluteName.equals("")) {
absoluteName = name.trim();
} else {
absoluteName += "/" + name.trim();
}
}
不能使用.replaceAll("\\s+", ""))
,就像我的用例" parent / child1 / child2"和" pa rent / ch ild1 / ch ild2"被视为2个不同的值。
输入 - >输出
parent / child1 / child2
- > parent/child1/child2
pa rent / ch ild1 / ch ild2
- > pa rent/ch ild1/ch ild2
答案 0 :(得分:4)
你不需要这里的lambdas。只需将/
和空格仅替换为/
str = str.replace("/ ", "/");
或者如果/
之后可以有更多空格要删除
str = str.replaceAll("/\\s+", "/");
更新:如果要删除/
周围的所有空格,可以使用
str = str.replaceAll("\\s*/\\s*", "/");
*
量词允许\\s
(空白)出现零次或多次。这意味着"\\s*/\\s*"
将匹配并替换
" /"
," /"
,"/ "
,"/ "
," / "
," / "
它也会匹配单个/
,但将其替换为相同的/
不会导致任何问题。