String boolean value> Boolean,始终为False!

bas*_*ter 0 java

我正在读取一个csv文件并从每行的字段创建一个Person对象,一行代表一个人.正在读入的字符串放在一个数组中,然后将数组元素指定为属性.

通过在这段代码之前和之后放置print语句,我发现'smoker'属性被设置为false,而不管数组元素的'true'或'false'字符串值.

if(person_array[7] == "true") {this.smoker = true;}
else {this.smoker = false;}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

谢谢

伊恩

Pau*_*lin 7

不要对对象做'==',请使用.equals().也做不到if (...) boolvar = true; else boolvar = false;

this.smoker = person_array[7].equals("true");
Run Code Online (Sandbox Code Playgroud)

或者@Adi和@Peter指出

this.smoker = Boolean.parseBoolean(person_array[7]);
Run Code Online (Sandbox Code Playgroud)


Adi*_*Adi 5

Paul Tomblin的答案应该可以解决你的问题.考虑用以下代码替换代码,

this.smoker=Boolean.parseBoolean(person_array[7]);
Run Code Online (Sandbox Code Playgroud)