我的bukkit插件有问题。 我尝试做的是搜索文件,逐行读取(有效),然后如果行中有一些文本,它必须返回该行,但它也必须返回所有其他行文件中也包含该特定文本。当我有这些行时,我必须将这些行发送给播放器,这不是问题,但是当我发送我现在获得的行时,“\ n”不起作用,这里是代码我现在用:
public String searchText(String text, String file, Player p)
{
String data = null;
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
while((line = br.readLine()) != null)
{
if(line.indexOf(text) >= 0)
{
data += System.getProperty("line.separator") + line + System.getProperty("line.separator");
}
p.sendMessage("+++++++++++GriefLog+++++++++++");
p.sendMessage(data);
p.sendMessage("++++++++++GriefLogEnd+++++++++");
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
返回意味着为空,因为信息会更高地返回给玩家:P 现在的问题是,我如何在数据变量中添加“\ n”,因为当我在我的其余代码中使用此函数时,它会提供很多行,但是没有“\ n”,那么怎么做我把它放进去了?
答案 0 :(得分:1)
由于您的方法不应返回任何内容,请删除return语句并将返回类型设置为void。 您的代码看起来会为搜索字词出现的每一行输出一次数据字符串,请尝试:
data = "";
while((line = br.readLine()) != null)
{
if(line.indexOf(text) >= 0)
{
//remove the first System.getProperty("line.separator") if
//you don't want a leading empty line
data += System.getProperty("line.separator") + line +
System.getProperty("line.separator");
}
}
if (data.length() > 0) {
p.sendMessage("+++++++++++GriefLog+++++++++++");
p.sendMessage(data);
p.sendMessage("++++++++++GriefLogEnd+++++++++");
}