MrD*_*ail 3 java string equals
main(String[] args)我的例子似乎与其他字符串数组之间存在差异,我无法弄清楚.
public class TestArgs
{
public static void main(String[] args) {
String[] x = {"1","2","3"};
System.out.print( x[2] == "3" );
System.out.print( args[2] == "3" );
}}
Run Code Online (Sandbox Code Playgroud)
我运行这个程序:
java TestArgs 1 2 3
Run Code Online (Sandbox Code Playgroud)
我希望输出是"真实的",但我得到"truefalse"
有人可以告诉我有什么区别,或者我只是在做一些非常愚蠢的事情......
在java中,你必须用来"test".equals("test")测试字符串相等性;)
字符串是对象,对象不是SAME,它们只有相同的VALUE
那是因为您在使用时比较了对象的引用==.在进行比较时String,请使用.equals()而不是==.这个答案更好地解释了原因.
所以你的代码会变成这样:
public class TestArgs {
public static void main(String[] args) {
String[] x = {"1","2","3"};
System.out.print("3".equals(x[2]);
System.out.print("3".equals(args[2]));
}
}
Run Code Online (Sandbox Code Playgroud)
此外,这与此答案没有直接关系,args在使用该操作进行任何操作之前检查您的长度总是一个好主意.原因是最终用户可能没有提供任何值args[2]
| 归档时间: |
|
| 查看次数: |
5262 次 |
| 最近记录: |