我应该如何将函数映射到 java 中的字符串数组?
How should I map a function onto a string array in java?
我想拆分一个字符串和trim新建立的数组中的每个单词。 Java 中是否有一种简单的(功能性)方法如何在不使用循环的情况下将其作为一个衬垫来完成?
String[] stringarray = inputstring.split(";");
for (int i = 0; i < stringarray.length; i++) {
stringarray[i] = stringarray[i].trim();
}
编辑:更正了循环(Andreas 的评论)
您可以通过以下方式进行:
String[] stringarray = inputstring.trim().split("\s*;\s*");
正则表达式的解释:
\s*
是零次或多次空白
\s*;\s*
指定零次或多次空格后跟 ;
后跟零次或多次空格
这可能不是纯数组解决方案,而是 java 8 解决方案:
String str = " string1 ;string2 ;string3 ;string4;";
String [] s = Arrays.stream(str.split(";")).map(String::trim).collect(Collectors.toList()).toArray(new String[]{});
System.out.println(Arrays.toString(s));
使用流,您可以这样做:
String[] stringarray = Arrays.stream(inputstring.split(";"))
.map(String::trim)
.toArray(String[]::new);
首先将数组转换为流(使用 Arrays class),然后使用 map 函数,然后转换回数组。
https://mkyong.com/java8/java-8-how-to-convert-a-stream-to-array/
我想拆分一个字符串和trim新建立的数组中的每个单词。 Java 中是否有一种简单的(功能性)方法如何在不使用循环的情况下将其作为一个衬垫来完成?
String[] stringarray = inputstring.split(";");
for (int i = 0; i < stringarray.length; i++) {
stringarray[i] = stringarray[i].trim();
}
编辑:更正了循环(Andreas 的评论)
您可以通过以下方式进行:
String[] stringarray = inputstring.trim().split("\s*;\s*");
正则表达式的解释:
\s*
是零次或多次空白\s*;\s*
指定零次或多次空格后跟;
后跟零次或多次空格
这可能不是纯数组解决方案,而是 java 8 解决方案:
String str = " string1 ;string2 ;string3 ;string4;";
String [] s = Arrays.stream(str.split(";")).map(String::trim).collect(Collectors.toList()).toArray(new String[]{});
System.out.println(Arrays.toString(s));
使用流,您可以这样做:
String[] stringarray = Arrays.stream(inputstring.split(";"))
.map(String::trim)
.toArray(String[]::new);
首先将数组转换为流(使用 Arrays class),然后使用 map 函数,然后转换回数组。
https://mkyong.com/java8/java-8-how-to-convert-a-stream-to-array/