写一个程序,读入一系列由只包含一行的行终止的行。“#通过计算空格数,输出每行的字数。不要输出包含#的行的结果(提示使用for-counter控制的循环)java
时间: 2024-10-10 08:08:15 浏览: 10
在Java中,你可以编写以下程序来完成这个任务。该程序会读取用户输入的一系列行,跳过包含'#'的行,并计算其余行的字数(不包括空格)。这里我们使用`Scanner`类来获取用户输入,并通过`for`循环和`counter`变量来计数每个单词的字符数:
```java
import java.util.Scanner;
public class WordCounter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int counter = 0; // 初始化计数器
// 循环读取用户输入直到遇到换行符
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// 检查当前行是否包含'#'
if (!line.contains("#")) {
// 去除行首尾的空白字符
String trimmedLine = line.trim();
// 遍历单词并累加字符数,不计入空格
for (int i = 0; i < trimmedLine.length(); i++) {
if (trimmedLine.charAt(i) != ' ') {
counter++;
}
}
System.out.println("行 " + (counter+1) + ": " + counter); // 输出字数
counter = 0; // 清零准备计算下一行
} else {
System.out.println("跳过了含有 '#' 的行");
}
}
// 关闭扫描器
scanner.close();
}
}
```
当你运行这个程序,它会提示你输入一行行的内容,然后跳过包含`#`的行,只打印出不含`#`行的字数。
阅读全文