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