我应该如何将函数映射到 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*");

正则表达式的解释:

  1. \s* 是零次或多次空白
  2. \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/