在java中,我应该如何将函数映射到字符串数组上



我想拆分一个字符串,并修剪新建立的数组中的每个单词。在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*指定零倍或更多倍的空白,后面跟;,后者可以跟零倍或更多次的空白

使用流可以做到这一点:

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

这可能不是纯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));

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

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

最新更新