Java读取文件并添加行号,我怎么不编号空白行?

时间:2015-02-21 02:14:47

标签: java java.util.scanner

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

2 个答案:

答案 0 :(得分:1)

我建议做一些改变:

  1. 确定poemScanner.hasNext()将下一行读入String变量
  2. 一旦你有一个字符串检查,看看该字符串是否都是空格。您可以使用正则表达式或其他一些手动机制。我更喜欢使用http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html
  3. 中的isBlank方法

    psuedo-code看起来像这样:

    while(poemScanner.hasNext()){
      String thisLine = poemScanner.nextLine();
    
      if(StringUtils.isBlank(thisLine)){
         System.out.println(thisLine);
      }
      else {
         System.out.println(lineNumber + thisLine);
      }
    }
    

    跳过一些细节,但应该给你如何使这项工作的要点。

答案 1 :(得分:0)

检查该行是否为空将无法查看它是否为空行。您可以尝试以下方法:

        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;
   }