为了账号安全,请及时绑定邮箱和手机立即绑定

初学java,今天写一段代码时遇到了关于判断一个字符串变量的问题,具体代码如下(问题在注释里已说明)

初学java,今天写一段代码时遇到了关于判断一个字符串变量的问题,具体代码如下(问题在注释里已说明)

慕粉18895320593 2016-09-01 20:27:58
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");

查看完整回答
反对 回复 2016-09-01
  • 1 回答
  • 0 关注
  • 1351 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信