如果我分割一个字符串,请像这样说:
List<String> words = Arrays.asList(input.split("\\s+"));
然后我想以各种方式修改这些单词,然后使用相同的逻辑重新组合它们,假设没有单词长度发生变化,有没有办法轻松做到这一点?请跟我开玩笑,因为我这样做是有原因的。
注意:我需要匹配所有空白,而不仅仅是空格。因此有了正则表达式。
即:
"Beautiful Country" -> ["Beautiful", "Country"] -> ["BEAUTIFUL", "COUNTRY"] -> "BEAUTIFUL COUNTRY"
最佳答案
如果您使用String.split
,则无法确保重新组装的字符串与原始字符串相同。
一般来说(在您的情况下)没有办法捕获实际使用的分隔符是什么。在您的示例中,"\\s+"
将匹配一个或多个空白字符,但您不知道使用了哪些字符,也不知道使用了多少个字符。
当您使用split
时,有关分隔符的信息会丢失。期间。
(另一方面,如果您不关心重新组装的字符串可能具有不同的长度或可能与原始字符串具有不同的分隔符,请使用 Joiner
类...)
关于java - 根据JAVA中先前的拆分重新组装拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51434150/