java读入一行字符串(不多于800个字符,以回车结束),统计其中Bubble出现了多少次。 注:类名必须为Main(大写M)
时间: 2024-05-16 10:16:53 浏览: 147
下面是一个示例代码,实现了从控制台读入一行字符串,并统计其中 Bubble 出现的次数。请注意,该代码中使用的是 Java 8 中的 Stream API,需要 JDK 版本在 1.8 及以上。
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
long count = line.chars()
.mapToObj(c -> (char) c)
.filter(c -> c == 'B')
.filter(c -> line.indexOf("ubble", line.indexOf(c) + 1) == line.indexOf(c) + 1)
.count();
System.out.println(count);
}
}
```
解释一下这段代码的思路:
1. 首先创建一个 `Scanner` 对象,用于从控制台读入一行字符串。
2. 然后使用 `chars()` 方法将字符串转换为 `IntStream`,并使用 `mapToObj()` 方法将每个字符转换为 `Character` 对象。
3. 接着,使用两个 `filter()` 方法,将所有字符中的 'B' 和满足 Bubble 出现条件的字符筛选出来。
4. 最后,使用 `count()` 方法统计满足条件的字符个数,并输出结果。
需要注意的是,在判断 Bubble 出现条件时,我们使用了 `indexOf()` 方法来查找字符串中是否包含指定的子串。具体来说,我们先使用 `indexOf()` 方法查找当前字符后面是否有 'u',如果找到了再判断 'u' 后面的 4 个字符是否是 "bble"。这样就可以保证统计的是 Bubble 出现的次数,而不是其他单词中包含 Bubble 的情况。
阅读全文