您好我正在设置一个设置加载器系统并且它不想工作,我尝试了不同的方法,这个看起来最好,除了它不工作,我可以请一些帮助,因为我需要在一天结束时完成。
以下是代码:
public GameSettings getGameSettings() throws Exception
{
Resolution GameResolution;
GameSettings gs = new GameSettings(true, true, false, 50, new Resolution(800, 600));
for(int k = 0; k < lines.size(); k++)
{
String[] s1 = lines.get(k).split("=");
if(s1[0].equals("volume"))
{
gs.setVolume(Integer.parseInt(s1[1]));
}
if(s1[0].equals("musicOn"))
{
gs.setMusicOn(Boolean.parseBoolean(s1[1]));
}
if(s1[0].equals("soundOn"))
{
gs.setSoundOn(Boolean.parseBoolean(s1[1]));
}
if(s1[0].equals("aOpenGL"))
{
gs.setAOpenGL(Boolean.parseBoolean(s1[1]));
}
if(s1[0].equals("GameRes"))
{
String[] s2 = s1[1].split("x");
GameResolution = new Resolution(Integer.parseInt(s2[1]), Integer.parseInt(s2[1]));
gs.setGameResolution(GameResolution);
}
if(s1[0].startsWith("#"))
{
continue;
}
else
{
System.err.println("WARNING: Unknow setting in settings file ('" + s1[0] + "')");
continue;
}
}
return gs;
}
,这是'settings.dat'文件内容:
#************************** Settings
#Settings file version 1.5
musicOn=false
volume=75
soundOn=true
aOpenGL=false
GameRes=1000x800
#end of settings file
最后是控制台输出:
WARNING: Unknow setting in settings file ('musicOn')
WARNING: Unknow setting in settings file ('volume')
WARNING: Unknow setting in settings file ('soundOn')
WARNING: Unknow setting in settings file ('aOpenGL')
WARNING: Unknow setting in settings file ('GameRes')
答案 0 :(得分:2)
您需要将这些if
与else
s链接起来。
if (str.equals("a")) {
...
} else if (str.equals("b")) {
...
} else {
// failed to match anything
}
否则, all 每次循环运行时都会评估ifs,因此Unkown
消息将显示所有不是注释的行,无论它们之前是否匹配
答案 1 :(得分:0)
显然,在任何非注释行的代码中,您都会打印警告。
我猜你实际上每次都想使用else if
而不是if
,因为在你的代码中,最终else
仅指上if
。