在java中如何将函数映射到字符串数组?
我想拆分一个字符串并修剪新建立的数组中的每个单词。Java中有没有一种简单的函数式方法,可以在不使用循环的情况下将其作为一个单行程序来实现在java中如何将函数映射到字符串数组?,java,trim,Java,Trim,我想拆分一个字符串并修剪新建立的数组中的每个单词。Java中有没有一种简单的函数式方法,可以在不使用循环的情况下将其作为一个单行程序来实现 String[] stringarray = inputstring.split(";"); for (int i = 0; i < stringarray.length; i++) { stringarray[i] = stringarray[i].trim(); } 编辑:更正了周期Andreas的注释您可以通过以
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*指定零倍或更多倍的空格,后跟空格;后面可能有零倍或更多的空白
这可能不是纯阵列解决方案,而是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));
使用streams,您可以做到这一点:
String[] stringarray = Arrays.stream(inputstring.split(";"))
.map(String::trim)
.toArray(String[]::new);
首先使用Arrays类将数组转换为流,然后使用map函数,然后再转换回数组
可能是inputstring.split\\s*\\完成了吗?@ernest_k如果输入字符串的开头和/或结尾有空格,比如ab;cd?@Pshemo在拆分inputstring之前对其调用trim。仅供参考:字符串是不可变的,因此代码应该用于int i=0;i