【发布时间】:2022-11-12 11:28:04
【问题描述】:
我正在尝试了解集合和流。
我已经拆分了下面的句子并保留了每个字母的位置(我忽略了空格/空白): “你好字!”
private static final String text = "Hello Word!";
static Map<String, List<Integer>> charsIndex = new HashMap<>();
static void charsIndex() {
List<Character> charsList = text
.chars()
.mapToObj(e -> (char) e)
.toList();
System.out.println(charsList);
int position = 0;
for (Character c : charsList) {
if(!c.toString().isBlank()){
charsIndex.computeIfAbsent(c.toString(),
addCharPosition -> new ArrayList<>()).add(position);
}
position += 1;
}
System.out.println(charsIndex);
}
结果:
[H, e, l, l, o, , W, o, r, d, !] (charsList)
{!=[10], r=[8], d=[9], e=[1], W=[6], H=[0], l=[2, 3], o=[4, 7]}(字符索引)
如何对字符进行排序并与空白一起重建我的单词?
我尝试这种方式:
static void charsToString(){ charsIndex.forEach((character, l) -> l.forEach(position -> { })); }
【问题讨论】:
-
您是否考虑过使用 StringBuilder,您可以在其中将字符设置到正确的位置?
-
发件人:
{!=[10], r=[8], d=[9], e=[1], W=[6], H=[0], l=[2, 3], o=[4, 7]}收件人:"Hello Word!"@AlexanderIvanchenko
标签: java collections java-stream