使用Stream将逗号分隔的字符串转换为Array

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Stream将逗号分隔的字符串转换为Array相关的知识,希望对你有一定的参考价值。

如何使用Java 8 Stream将Java逗号分隔为对象Array?

 public static void main(String[] args){
    String INPUT = 
        "00:00:01,400-234-090
" +
            "00:00:01,701-080-080
" +
            "01:05:00,600-234-090";
    System.out.println(new Solution().solution(INPUT));

  }
答案

您可以使用Java Stream执行如下操作:

Arrays.stream(csvString.split("
?
"))
                .map(x -> x.split(","))
                .map(Arrays::asList)
                .map(PhoneCall::new) //Stream<PhoneCall>
                .collect(Collectors.groupingBy(x -> x.phoneNumber)) //Map<String, List<PhoneCall>>
                .values() 
                .stream()



    private static class PhoneCall {
        final String phoneNumber;
        final int hours;
        final int minutes;
        final int seconds;


        PhoneCall(List<String> values) {
            phoneNumber = values.get(1);
            String[] durationArray = values.get(0).split(":");
            hours = Integer.valueOf(durationArray[0]);
            minutes = Integer.valueOf(durationArray[1]);
            seconds = Integer.valueOf(durationArray[2]);
        }
    }
另一答案

它很简单:

String[] strings = Arrays.stream(INPUT.split(","))
                         .toArray(String[]::new)

但出于什么目的?您可以在没有任何流的情况下执行此操作只需致电INPUT.split(","),它将返回String[]

以上是关于使用Stream将逗号分隔的字符串转换为Array的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组转换为逗号分隔的单词字符串? [复制]

如何在 smarty 模板中将数组转换为逗号分隔的字符串?

将逗号分隔值转换为双引号逗号分隔字符串

无法将逗号分隔的字符串转换为数组

使用 SQL Server 将逗号分隔的文本转换为多列结果

使用嵌套数组将 JSON 转换为逗号分隔的字符串