Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用流Lambda分割整数_Java_String_Lambda_Java Stream - Fatal编程技术网

Java 使用流Lambda分割整数

Java 使用流Lambda分割整数,java,string,lambda,java-stream,Java,String,Lambda,Java Stream,我在研究Java8中Stream和Lambda的用法。如何将Stream和Lambda应用于以下内容:使用Stream和Lambda打印出以下字符串中的奇数整数:“[3,6,8,96,7,23]” 我发现使用for循环和parseInt非常简单,但是如何实现streams和lambda呢 可以将子字符串与拆分一起使用,如下所示: String str = "[3, 6, 8, 96, 7, 23]"; Arrays.stream(str.substring(1, str.length() - 1

我在研究Java8中Stream和Lambda的用法。如何将Stream和Lambda应用于以下内容:使用Stream和Lambda打印出以下字符串中的奇数整数:“[3,6,8,96,7,23]”


我发现使用for循环和parseInt非常简单,但是如何实现streams和lambda呢

可以将子字符串与拆分一起使用,如下所示:

String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .filter(s -> Integer.valueOf(s) % 2 != 0)
        .forEach(System.out::println);
.toArray(String[]::new);
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .map(Integer::valueOf)
        .filter(i -> i % 2 != 0)
        .toArray(Integer[]::new);
或者,如果您想获得数组,则可以使用如下命令:

String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .filter(s -> Integer.valueOf(s) % 2 != 0)
        .forEach(System.out::println);
.toArray(String[]::new);
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .map(Integer::valueOf)
        .filter(i -> i % 2 != 0)
        .toArray(Integer[]::new);
或者,如果要获取整数数组,可以使用映射,然后使用如下所示的过滤器:

String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .filter(s -> Integer.valueOf(s) % 2 != 0)
        .forEach(System.out::println);
.toArray(String[]::new);
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .map(Integer::valueOf)
        .filter(i -> i % 2 != 0)
        .toArray(Integer[]::new);
输出

3
7
23

可以将子字符串与拆分一起使用,如下所示:

String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .filter(s -> Integer.valueOf(s) % 2 != 0)
        .forEach(System.out::println);
.toArray(String[]::new);
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .map(Integer::valueOf)
        .filter(i -> i % 2 != 0)
        .toArray(Integer[]::new);
或者,如果您想获得数组,则可以使用如下命令:

String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .filter(s -> Integer.valueOf(s) % 2 != 0)
        .forEach(System.out::println);
.toArray(String[]::new);
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .map(Integer::valueOf)
        .filter(i -> i % 2 != 0)
        .toArray(Integer[]::new);
或者,如果要获取整数数组,可以使用映射,然后使用如下所示的过滤器:

String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .filter(s -> Integer.valueOf(s) % 2 != 0)
        .forEach(System.out::println);
.toArray(String[]::new);
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
        .map(Integer::valueOf)
        .filter(i -> i % 2 != 0)
        .toArray(Integer[]::new);
输出

3
7
23

通过将字符串拆分为“[”、“]”、“”和“,”来将其转换为字符串[] 然后过滤空白值,而不是奇数整数

Arrays.stream("[3, 6, 8, 96, 7, 23]".split("[,\\s\\[\\]]"))
.filter(s->!s.isBlank() && Integer.valueOf(s)%2!=0)
.forEach(s-> System.out.println(s));

通过将字符串拆分为“[”、“]”、“”和“,”来将其转换为字符串[] 然后过滤空白值,而不是奇数整数

Arrays.stream("[3, 6, 8, 96, 7, 23]".split("[,\\s\\[\\]]"))
.filter(s->!s.isBlank() && Integer.valueOf(s)%2!=0)
.forEach(s-> System.out.println(s));

让我们看看你先做了什么?我现在没有代码,但可以根据逗号分割所有元素,然后将每个元素放入数组中,然后,可能会从第一个和最后一个元素中删除括号,然后如果其mod 2值为1,则取余数并打印它,告诉我们您首先做了什么?我现在没有代码,但可以根据逗号拆分所有内容,然后将每个元素推入一个数组中,然后,也许从第一个和最后一个元素中删除括号,然后如果mod 2的值为1,则取剩余部分并打印出来。谢谢…只是澄清一下-stream和lambda与Java中更简单的方法相比有什么好处7I不能给您关于这个问题的完整答案,因为我请您详细了解,互联网上的许多其他书籍和论坛我们有些感谢…只是想澄清一下-stream和lambda与Java 7中更简单的方法相比有什么好处我不能给你一个关于这个问题的完整答案,因为我邀请你详细学习,以及互联网上的许多其他书籍和论坛