我有三个列表,已经合并为一个列表
static List allLists = Stream.of(list1, list2, list3)
.flatMap(Collection::stream)
.collect(Collectors.toList());
我输入的用户没有空格
String = "HelloIwanttobookanonlineseminaratyourcompany"
用户输入String
中的所有单词都已经在allLists
中。我想遍历allLists
并在字符串中插入空格,并找到每个单词。结果应该是:
String = "Hello I want to book an online seminar at your company"
我想念一个简单的解决方案吗?
答案 0 :(得分:3)
使用单行代码,该代码行采用allLists
构建的(大量)外观在每个单词之前插入空格:
str = str.replaceAll("(?<=" + String.join("|", allLists) + ")", " ");
请注意,allLists
中的单词顺序很重要;如果您希望较长的单词优先,请首先列出(推荐)。例如,如果“ book”和“ booking”都在列表中,请在预订前先预订,否则结果中将显示“ booking”。