【发布时间】:2021-10-28 17:08:31
【问题描述】:
我有一个任务:
给出一个正整数序列和一个字符串序列stringList。根据以下规则获取新的字符串序列:对于每个值 n 来自 序列号,从序列stringList中选择一个以数字开头,长度为n的字符串。
如果stringList序列中有多个需要的字符串,则返回第一个;如果没有,则返回字符串“未找到”
例如:
input: {1, 3, 4}, {"1aa", "aaa", "1", "a"}
output: {"1", "1aa", "Not Found"}
我的输出:
[java.util.stream.ReferencePipeline$3@7f690630,
java.util.stream.ReferencePipeline$3@edf4efb,
java.util.stream.ReferencePipeline$3@2f7a2457]
我的代码:
(List<Integer> numbers, List<String> stringList) {
return numbers.stream()
.map(Object::toString)
.map(value -> (stringList.stream().filter(e -> (Character.isDigit(e.charAt(0)))).map(s -> {
if (((Object) (s.length())).toString().equals(value)) return s;
return "Not Found";
}))).map(Object::toString).collect(Collectors.toList());
请帮忙。
【问题讨论】:
-
使用
==比较引用。要比较 2 个字符串,您必须使用equals方法。 -
感谢建议,代码已更正,但问题依旧
标签: java list lambda java-stream