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文件名无效"); } }}
1 回答
已采纳
摩诃迦叶
TA贡献146条经验 获得超54个赞
String是对象,你用==比较的是他们的引用而不是在比较“java”字符串。 prefix = "java" 和 "java" 都是属于一个对象的"java", String prefix = fileName.substring(index+1,index+5); 是另一个对象的"java"。 所以前一个比较是false,后一个比较是true。 比较字符串你应该用equals方法,prefix.equals("java");
添加回答
举报
0/150
提交
取消