如何解决如何在Java中将函数映射到字符串数组?
我想分割一个字符串并修剪新建立的数组中的每个单词。 Java中是否有一种简单的(功能性)方法,如何在不使用循环的情况下将其作为一个衬板?
String[] stringarray = inputstring.split(";");
for (int i = 0; i < stringarray.length; i++) {
stringarray[i] = stringarray[i].trim();
}
编辑:更正了周期(安德里亚斯的评论)
解决方法
您可以通过以下方式进行操作:
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/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。