使用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的主要内容,如果未能解决你的问题,请参考以下文章