java 我的代码在输出前打印新行[已关闭]

f8rj6qna  于 2023-03-06  发布在  Java
关注(0)|答案(1)|浏览(120)

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
17小时前关门了。
Improve this question
我在写代码的时候遇到了一个问题,我的代码在输出前打印了一个新行,我想避免这种情况。
下面是我的代码

if (movieName.length() > 44)
                {
                    movieName = movieName.substring(0, 44);
                }
                
                if(frqName.equals(movieName) && frqRating.equals(movieRating)) 
                {
                    
                    System.out.print(" " + movieTime);
                    
                }
                    
                else 
                {
                    System.out.println();
                    System.out.printf("%-44s | %5s | %s", movieName, movieRating, movieTime);
                    
                }
                
                frqName = movieName;
                frqRating = movieRating;

            }
        
        }
        
    }

下面是我的输出--首先是不希望看到的空行:

Wonders of the World                         |     G | 16:40 20:00
Journey to Space                             | PG-13 | 19:00
Buffalo Bill And The Indians or Sitting Bull |    PG | 12:45 15:00 19:30
Adventure of Lewis and Clark                 | PG-13 | 10:00 14:30
Halloween                                    |     R | 19:00

我认为问题出在第一个print语句上;但我该怎么修呢
我已经尝试过从else部分删除System.out.println();,并在下一行的格式字符串中添加一个换行符,但是同一个动作的后续显示时间会打印在下一行,这更糟糕。

3wabscal

3wabscal1#

只写:

if (frqName.equals(movieName) && frqRating.equals(movieRating)) {
    System.out.println(" " + movieTime);
} else {
    System.out.printf("%-44s | %5s | %s \n", movieName, movieRating, movieTime);
}

...并且您的输出不会以空行开头。
我还将(尽管我不知道您的意图)在新的System.out.println()中删除movieTime之前的" " +

System.out.println(movieTime);

相关问题