为什么字符串返回布尔可测试的值?

时间:2014-05-01 16:46:07

标签: java string boolean

当我输入声明时:

String population_construction_str = "some externally set value";
int answer_counter = 0;  
answer_counter = population_construction_str > 6 ? 2 : 1;

我得到了一个可用的结果(显然总是如此)。 我弄清楚我的错误是什么。我需要得到字符串的LENGTH以使这种行为得到预期。但在我这样做之前,我显然得到的值是> 6。

这是我的问题:这个字符串返回的是什么,大于6?它返回的值总是大于6吗?为什么我的编译器没有返回错误?并且知道字符串在查询时返回的方式有用吗?

我希望这个问题不是太开放,对我来说,只要知道字符串在以这种方式查询时返回的内容以及它为什么这样做就足够了。谢谢。

2 个答案:

答案 0 :(得分:3)

那个字符串没有返回任何东西。事实上,正如@ZouZou所提到的,它给出了这个错误“The operator > is undefined for the argument type(s) String, int”,甚至不会编译。请检查一下,如果您没有收到上面发布的代码的编译错误,我们都想知道您正在使用的Java版本和IDE(如果有的话)。

答案 1 :(得分:1)

您的代码将显示编译错误。

enter image description here

试试,

answer_counter = population_construction_str.length() > 6 ? 2 : 1;