Esp*_*pen 1 java string comparison reference
我有这个代码:
Node main_node = document.getDocumentElement();
NodeList main_node_list = main_node.getChildNodes();
for( int main_iterator = 0; main_iterator < main_node_list.getLength(); main_iterator++ ) {
Node child_node = main_node_list.item( main_iterator );
String child_node_name = child_node.getNodeName();
if( child_node_name == "#text" ) continue;
Toast.makeText( context, "\"" + child_node_name + "\"", Toast.LENGTH_SHORT ).show();
if( child_node_name == "library_visual_scenes" ) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
它不能更清楚,但在两个if语句之间的Toast中,它表明child_node_name在某个时刻完全等于"library_visual_scenes".这没有第二个if语句是真的.
当child_node_name等于"#text"时,第一个if语句会被执行.意思是我从未在Toast中看到文本"#text".
child_node_name是一个String对象.这是将String与字符串进行比较的正确方法吗?
我不知道这里发生了什么.这可能是一些特定于Android的东西,因为如果我在计算机上以普通Java的形式运行它,几乎相同的代码可以工作吗?
更换
child_node_name == "library_visual_scenes"
child_node_name == "#text"
Run Code Online (Sandbox Code Playgroud)
同
"library_visual_scenes".equals(child_node_name);
"#text".equals(child_node_name);
Run Code Online (Sandbox Code Playgroud)
这就是你必须比较java中的字符串."=="比较引用,而不是内容.
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |