Java读取文件并添加行号,如何不给空行编号?
好的,我正在做一个Java项目,它读取用户指定的文件,获取信息并添加行号。适合诗歌和其他类型的文学作品。现在我的行号可以正常工作了,但我遇到的问题是,我必须确保打印了所有空白行,但没有编号。有什么帮助吗?我建议做一些修改:Java读取文件并添加行号,如何不给空行编号?,java,java.util.scanner,Java,Java.util.scanner,好的,我正在做一个Java项目,它读取用户指定的文件,获取信息并添加行号。适合诗歌和其他类型的文学作品。现在我的行号可以正常工作了,但我遇到的问题是,我必须确保打印了所有空白行,但没有编号。有什么帮助吗?我建议做一些修改: 确定poemScanner.hasNext()后,将下一行读入字符串变量 一旦你有一个字符串检查,看看这个字符串是否都是空白。您可以使用正则表达式或其他一些手动机制。我更喜欢使用来自的isBlank方法 psuedo代码如下所示: while(poemScanner.hasN
while(poemScanner.hasNext()){
String thisLine = poemScanner.nextLine();
if(StringUtils.isBlank(thisLine)){
System.out.println(thisLine);
}
else {
System.out.println(lineNumber + thisLine);
}
}
这跳过了一些细节,但应该给你如何使这项工作的要点 检查该行是否为空无法查看它是否为空行。您可以尝试以下操作:
if(!isNullOrWhiteSpace(line)) {
System.out.println(poemScanner.nextLine());
}
public boolean isNullOrWhiteSpace(String str)
{
if(str == null || str.length() == 0) return true;
for(int i = 0; i < str.length; i++)
if (!Character.isWhitespace(str.charAt(i)))
return false;
return true;
}
如果(!isNullOrWhiteSpace(行)){
System.out.println(poemScanner.nextLine());
}
公共布尔值isNullOrWhiteSpace(字符串str)
{
if(str==null | | str.length()==0)返回true;
对于(int i=0;i
不是那种类型的网站,它更多的是用于常见问题解答和简短格式的问题,而不是用于解决编程练习。缩进良好的代码更容易理解。它将帮助其他人更快地回答你的问题。如果你删除了代码,认为这会引起负面反应——我想告诉你,在问题中发布代码是常见的,几乎是意料之中的,所以这没有问题。事实上,它很有帮助,因为它显示了您已经尝试过的内容以及可以改进的地方。根据他的知识,找出如何包含第三方依赖可能有点太多了。当我在工作中指导新开发人员时,我倾向于选择方便、通用的库,比如StringUtils
,而不是正则表达式。是的,添加一个库可能会带来一些损失或麻烦,但这是他们无论如何都需要学习的东西,最终会产生比正则表达式更可读、错误空间更小的代码。我在这里采用了同样的策略。