Java 8 流。获取字符串数组的 int 数组

问题描述 投票:0回答:1

给定一个字符串数组,我想计算每个字符串中“1”字符的数量。
例如:

Input: ["00101010", "10010", "11111"]  
Output: [3, 2, 5]

--

String []b = ["00101010", "10010", "11111"];
int [] c = Arrays.stream(b).mapToInt(r -> countChar(r, '1')).toArray();

int countChar(String string, char x) {
    return (int)string.chars().filter(ch -> ch == x).count();
}

我如何在一个声明中写下这个。

我尝试用

countChar(r, '1')
和各种组合替换
(int)string.chars().filter(ch -> ch == x).count()
。错误日志太大了,我无法理解。

PS:java 8 流中的菜鸟

java java-8 java-stream
1个回答
0
投票

如果你所有的字符都是 0 和 1,那么这样的东西应该可以工作。去掉所有的 0,字符串的长度就是 1 的个数。

.stream()
.map(s -> s.replace("0", ""))
.map(String::length)
© www.soinside.com 2019 - 2024. All rights reserved.