此代码无效:
String name = "Bob";
String name1 = "Anne";
if name = name1;
System.out.println ("Hello");
Run Code Online (Sandbox Code Playgroud)
我是Java的初学者,请帮助我们使用这段代码.我想比较两个字符串.
Jon*_*eet 14
你要:
if (name.equals(name1))
Run Code Online (Sandbox Code Playgroud)
请注意,你不想要
if (name == name1)
Run Code Online (Sandbox Code Playgroud)
这在语法上是正确的,但会比较两个字符串引用的相等性,而不是比较所涉及的对象是否代表相同的字符序列
此外,请注意,即使是顶级版本也只是对字符串中的UTF-16代码单元进行序数比较.如果两个字符串在逻辑上代表相同的字符但形式不同,则可能无法获得预期的结果.如果你想进行文化敏感的比较,你应该看一下Collator.
另外,我建议如果你真的是Java的新手,你可以从控制台应用程序和/或单元测试开始探索语言而不是JSP - 它会让你在学习的过程中获得更顺畅的循环基础知识,以及更简单的工作环境.
更重要的是,顶部给出的代码将抛出一个NullPointerExceptionif name是一个空引用.你应该考虑在那一点你想要发生什么 - 如果字符串为null无论如何都会代表一个bug,那么异常可能是合适的; 否则,您可能想要更改代码.番石榴中的一种有用的方法(它充满了好东西)是Objects.equal:
if (Objects.equal(name, name1))
Run Code Online (Sandbox Code Playgroud)
如果两个参数都为null,则该方法返回true ;如果只有一个参数为null,则返回false ; equals()如果它们都是非null ,则返回调用的结果.非常便利.
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |