当循环遍历不同行上每个项目的文本文件时,循环会不断获得额外的空格作为其中一个值。
try {
BufferedReader br = new BufferedReader(new FileReader("Words.txt"));
String line;
while ((line = br.readLine()) != null) {
event.getTextChannel().sendMessage(line + "; ").queue();
}
br.close();
}
我得到的结果是:
廊下;
火星
意味;
但我想要廊下;火星;意味;
答案 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(“”))来修复它。