循环文本文件时有额外的空间。

时间:2017-07-17 05:52:27

标签: java

当循环遍历不同行上每个项目的文本文件时,循环会不断获得额外的空格作为其中一个值。

try {
            BufferedReader br = new BufferedReader(new FileReader("Words.txt")); 
            String line;
            while ((line = br.readLine()) != null) {
                event.getTextChannel().sendMessage(line + "; ").queue();
            }
            br.close();
    }

我得到的结果是:

廊下;

火星

意味;

但我想要廊下;火星;意味;

2 个答案:

答案 0 :(得分:2)

根据您在评论中指出的实际发送消息的方式,可以采用更简洁的方式。但是你可以尝试做这样的事情:

try {
        BufferedReader br = new BufferedReader(new FileReader("Words.txt")); 
        StringBuilder builder = new StringBuilder();
        String line;
        while ((line = br.readLine()) != null) {
            builder.append(line.replace("\n", "").replace("\r", "")).append("; ")
        }
        br.close();
        event.getTextChannel().sendMessage(builder.toString()).queue(); 
}

编辑: 你真的应该试着找出多余的空行来自哪里,但一个临时的解决方法是跳过空行:

try {
        BufferedReader br = new BufferedReader(new FileReader("Words.txt")); 
        StringBuilder builder = new StringBuilder();
        String line;
        while ((line = br.readLine()) != null) {
            String stripped = line.replace("\n", "").replace("\r", "");
            if (!stripped.isEmpty()) {
                builder.append(stripped).append("; ")
            }
        }
        br.close();
        event.getTextChannel().sendMessage(builder.toString()).queue();
}

答案 1 :(得分:0)

我通过在打印文本的行之前添加if(!line.equals(“”))来修复它。