初学java,今天写一段代码时遇到了关于判断一个字符串变量的问题,具体代码
public class HelloWorld {
public static void main(String[] args) {
String fileName = "HelloWorld.java";
int index = fileName.indexOf('.');
String prefix = fileName.substring(index+1,index+5);
System.out.println(prefix); //这里输出prefix的值是java
if ( prefix=="java" ) { //而if中判断prefix=="java"不成立
System.out.println("第一次检测Java文件名正确");
} else {
System.out.println("第一次检测Java文件名无效");
}
prefix = "java"; //给prefix重新赋值java
System.out.println(prefix); //第二次输出prefix值还是java
if ( prefix=="java" ) { //但是if中判断prefix=="java"却成立了???
System.out.println("第二次Java文件名正确");
} else {
System.out.println("第二次Java文件名无效");
}
}
} |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
String是对象,你用==比较的是他们的引用而不是在比较“java”字符串。 prefix = "java" 和 "java" 都是属于一个对象的"java", String prefix = fileName.substring(index+1,index+5); 是另一个对象的"java"。 所以前一个比较是false,后一个比较是true。 比较字符串你应该用equals方法,prefix.equals("java"); |
|
|
|
|