如何在Java中将函数映射到字符串数组?

时间:2020-08-30 15:44:59

标签: java trim

我想分割一个字符串并修剪新建立的数组中的每个单词。 Java中是否有一种简单的(功能性)方法,如何在不使用循环的情况下将其作为一个衬板?

String[] stringarray = inputstring.split(";");
for (int i = 0; i < stringarray.length; i++) { 
    stringarray[i] = stringarray[i].trim(); 
}

编辑:更正了周期(安德里亚斯的评论)

4 个答案:

答案 0 :(得分:4)

您可以通过以下方式进行操作:

String[] stringarray = inputstring.trim().split("\\s*;\\s*");

正则表达式的解释:

  1. \s*是空格的零倍或更多倍
  2. \s*;\s*指定零个或多个空格,后跟;,后跟零个或多个空格

答案 1 :(得分:3)

使用流,您可以执行以下操作:

String[] stringarray = Arrays.stream(inputstring.split(";"))
        .map(String::trim)
        .toArray(String[]::new);

答案 2 :(得分:2)

这可能不是纯粹的Array解决方案,而是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));

答案 3 :(得分:1)

首先将数组转换为流(使用Arrays类),然后使用map函数,然后转换回数组。

https://mkyong.com/java8/java-8-how-to-convert-a-stream-to-array/

相关问题