Java 从文件BufferedReader中获取文本,输出看起来正常,但不';t等于“;“真的”;或;假;(文件中有什么内容)
我正在尝试使用以下代码从文件(用作设置文件,true或false值)获取信息:Java 从文件BufferedReader中获取文本,输出看起来正常,但不';t等于“;“真的”;或;假;(文件中有什么内容),java,bufferedreader,filereader,Java,Bufferedreader,Filereader,我正在尝试使用以下代码从文件(用作设置文件,true或false值)获取信息: File information = new File(aPath + "/plugins/ArenaCraft/info.acs"); ArrayList<String> info = new ArrayList<String>(); BufferedReader br = new BufferedReader(new FileReader(information)); String li
File information = new File(aPath + "/plugins/ArenaCraft/info.acs");
ArrayList<String> info = new ArrayList<String>();
BufferedReader br = new BufferedReader(new FileReader(information));
String line;
while((line = br.readLine()) != null) {
String[] sLine = line.split(":");
if(sLine[1] == "true"){
info.add("true");
}
if(sLine[1] == "false"){
info.add("false");
}
if(sLine[1] == null){
System.err.println("[ArenaCraft] sLine[1] is NULL.");
}
if(sLine[1] != "true" && sLine[1] != "false" && sLine[1] != null){
System.err.println("[ArenaCraft] sLine[1] is not NULL, but it's not \"true\" or \"false\".");
System.err.println("[ArenaCraft] sLine[1] is: " + sLine[1]);
}
}
br.close();
return info;
信息。然后它输出,确切地说
[ArenaCraft] sLine[1] is: true
所以,我不明白为什么它说它不是空的,不是真的,不是假的。
你们能想象为什么会这样吗
我正在尝试读取的文件内容(无编码)如下所示:
notices:true
没别的了
任何帮助都将不胜感激,提前谢谢。您使用的是
a==b
而不是a.equals(b)
请参见:。您使用的是a==b
而不是a.equals(b)
请参见:。您使用的是a==b
而不是a.equals(b)
请参见:.您使用的是a==b
而不是a.equals(b)
请参见:.使用equals()
方法进行字符串内容比较,=
使用equals()
方法进行字符串内容比较,=
用于字符串引用比较使用equals()
方法进行字符串内容比较,==
用于字符串引用比较使用equals()
方法进行字符串内容比较,=
用于字符串引用比较好了,==运算符比较引用。您希望在此处使用equals()方法:
if (sLine[1].equals("true")) {
[...]
}
此外,还应使用该方法,以确保字符串中没有前导空格或尾随空格。像这样的一行:param=true
将使用您的代码解析为“true”,这不等于“true”
嗯,==运算符比较引用。您希望在此处使用equals()方法:
if (sLine[1].equals("true")) {
[...]
}
此外,还应使用该方法,以确保字符串中没有前导空格或尾随空格。像这样的一行:param=true
将使用您的代码解析为“true”,这不等于“true”
嗯,==运算符比较引用。您希望在此处使用equals()方法:
if (sLine[1].equals("true")) {
[...]
}
此外,还应使用该方法,以确保字符串中没有前导空格或尾随空格。像这样的一行:param=true
将使用您的代码解析为“true”,这不等于“true”
嗯,==运算符比较引用。您希望在此处使用equals()方法:
if (sLine[1].equals("true")) {
[...]
}
此外,还应使用该方法,以确保字符串中没有前导空格或尾随空格。像这样的一行:param=true
将使用您的代码解析为“true”,这不等于“true”
一般而言,变化:
if (cond1) { ... }
if (cond2) { ... }
if (cond3) { ... }
if (!cond1 && !cond2 && !cond3) { .... }
到
在最多一个条件为真的情况下,如您的示例中所示。通常,更改:
if (cond1) { ... }
if (cond2) { ... }
if (cond3) { ... }
if (!cond1 && !cond2 && !cond3) { .... }
到
在最多一个条件为真的情况下,如您的示例中所示。通常,更改:
if (cond1) { ... }
if (cond2) { ... }
if (cond3) { ... }
if (!cond1 && !cond2 && !cond3) { .... }
到
在最多一个条件为真的情况下,如您的示例中所示。通常,更改:
if (cond1) { ... }
if (cond2) { ... }
if (cond3) { ... }
if (!cond1 && !cond2 && !cond3) { .... }
到
在最多一个条件为真的情况下,如在您的示例中。不要使用
==
比较字符串值。使用equals()
祝贺您!您是“谁在12月22日发布==vs.equals问题”竞赛的获胜者。对不起,我不知道是什么导致了问题,所以我没有检查字符串的精确比较。我对java有点陌生,不确定问题出在哪里。@Holythonder别担心。这只是一点讽刺,因为与你的问题根源相同的问题每天至少出现一次。因此,可以说这是Java的一个弱点。不要使用=
比较字符串值。使用equals()
祝贺您!您是“谁在12月22日发布==vs.equals问题”竞赛的获胜者。对不起,我不知道是什么导致了问题,所以我没有检查字符串的精确比较。我对java有点陌生,不确定问题出在哪里。@Holythonder别担心。这只是一点讽刺,因为与你的问题根源相同的问题每天至少出现一次。因此,可以说这是Java的一个弱点。不要使用=
比较字符串值。使用equals()
祝贺您!您是“谁在12月22日发布==vs.equals问题”竞赛的获胜者。对不起,我不知道是什么导致了问题,所以我没有检查字符串的精确比较。我对java有点陌生,不确定问题出在哪里。@Holythonder别担心。这只是一点讽刺,因为与你的问题根源相同的问题每天至少出现一次。因此,可以说这是Java的一个弱点。不要使用=
比较字符串值。使用equals()
祝贺您!您是“谁在12月22日发布==vs.equals问题”竞赛的获胜者。对不起,我不知道是什么导致了问题,所以我没有检查字符串的精确比较。我对java有点陌生,不确定问题出在哪里。@Holythonder别担心。这只是一点讽刺,因为与你的问题根源相同的问题每天至少出现一次。所以可以说这是Java的一个弱点。太好了,非常感谢!我已经花了大约两个小时在这上面胡闹,想看看发生了什么!太好了,非常感谢!我已经花了大约两个小时在这上面胡闹,想看看发生了什么!太好了,非常感谢!我已经花了大约两个小时在这上面胡闹,想看看发生了什么!太好了,非常感谢!我已经花了大约两个小时在这上面胡闹,想看看发生了什么!谢谢我对java相当陌生,我知道一些,并且可以处理最基本的东西,但我不知道这些指导原则!谢谢我对java相当陌生,我知道一些,并且可以处理最基本的东西,但我不知道