Java读取文件并添加行号,如何不给空行编号?

Java读取文件并添加行号,如何不给空行编号?,java,java.util.scanner,Java,Java.util.scanner,好的,我正在做一个Java项目,它读取用户指定的文件,获取信息并添加行号。适合诗歌和其他类型的文学作品。现在我的行号可以正常工作了,但我遇到的问题是,我必须确保打印了所有空白行,但没有编号。有什么帮助吗?我建议做一些修改: 确定poemScanner.hasNext()后,将下一行读入字符串变量 一旦你有一个字符串检查,看看这个字符串是否都是空白。您可以使用正则表达式或其他一些手动机制。我更喜欢使用来自的isBlank方法 psuedo代码如下所示: while(poemScanner.hasN

好的,我正在做一个Java项目,它读取用户指定的文件,获取信息并添加行号。适合诗歌和其他类型的文学作品。现在我的行号可以正常工作了,但我遇到的问题是,我必须确保打印了所有空白行,但没有编号。有什么帮助吗?

我建议做一些修改:

  • 确定poemScanner.hasNext()后,将下一行读入字符串变量
  • 一旦你有一个字符串检查,看看这个字符串是否都是空白。您可以使用正则表达式或其他一些手动机制。我更喜欢使用来自的isBlank方法
  • psuedo代码如下所示:

    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
    ,而不是正则表达式。是的,添加一个库可能会带来一些损失或麻烦,但这是他们无论如何都需要学习的东西,最终会产生比正则表达式更可读、错误空间更小的代码。我在这里采用了同样的策略。