使用流操作从字符串中找到最小和最大的子字符串

时间:2018-10-20 14:32:56

标签: java lambda java-stream

我有一个字符串和一个整数k(子字符串长度),我试图编写该函数,以便它在字典上找到最小且长度为k的最大子串。然后返回一个字符串,其中最小和最大的子字符串与换行符组合。

现在,我用下面的方法解决了问题,我编写了相同的代码来查找最小和最大的子字符串,但是,我想用流的单行代码返回两个子字符串。

uint8_t

我现在正在学习lambda并进行流式传输,因此我很欣赏任何建议。

那么,我如何优雅地解决这个简单的问题

2 个答案:

答案 0 :(得分:2)

我只是去上学,将经过排序的流收集到列表中,并获得第一个和最后一个元素:

List<String> list = IntStream.range(0, s.length() - k + 1)
    .mapToObj((value) -> s.substring(value, value + k))
    .sorted(String.CASE_INSENSITIVE_ORDER)
    .collect(Collectors.toList());

smallest = list.get(0);
largest = list.get(list.size() - 1);

答案 1 :(得分:1)

您可以使用this answerKubernetes master is running at http://localhost:8080 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. The connection to the server localhost:8080 was refused - did you specify the right host or port?

然后,解决方案变为:

SummaryStatistics