[英]count and print total number of empty lines from user input in java
我编写了一个程序来计算用户输入中的行数和单词数。
问题:我需要程序计算行,即使它们是空的,而下面的代码不计算空行。
我曾尝试使用isEmpty()方法,但它不起作用,我看到了一个名为isBlank()的方法,但要使用它,您需要下载一个库。 有没有其他方法来计算空行?
import java.util.*;
import java.util.ArrayList;
public class Counter2{
public static void main(String[]args){
List<String> arrayList = new ArrayList<String>();
int words = 0;
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
String line = scan.nextLine();
arrayList.add(line);
words += line.split(" ").length;
}
System.out.println("lines: " + arrayList.size());
System.out.println("words: " + words);
scan.close();
}
}
通过以下方式检查您的行是否为空且不为空:
line != null && !"".equals(line.trim())
如果您不想对行和单词做任何事情而只想对它们进行计数,为什么不为此使用两个计数变量?
while (scan.hasNext()) {
String line = scan.nextLine();
if(line != null && !"".equals(line.trim())) {
lineCount++;
wordCount += line.split(" ").length;
}
}
System.out.println("Lines:" + lineCount);
System.out.println("Words:" + wordCount);
}
使用System.in.read
从终端而不是Scanner.hasNext()
获取所有输入。 \\n
字符在所有平台上都有效,表示换行。
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Counter2 {
public static void main(String[]args) throws IOException {
List<String> arrayList = new ArrayList<String>();
int words = 0;
StringBuilder line = new StringBuilder();
int n ;
while ((n = System.in.read()) != -1) {
if (n=='\n') {
arrayList.add(line.toString());
if (!line.toString().isEmpty()) {
words += line.toString().split(" ").length;
}
line = new StringBuilder();
} else {
line.append((char) n);
}
}
System.out.println("lines: " + arrayList.size());
System.out.println("words: " + words);
}
}
上面的代码片段不将新行算作单词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.