zoukankan      html  css  js  c++  java
  • java中判断两个字符串是否相等的问题

    我最近刚学java,今天编程的时候就遇到一个棘手的问题,就是关于判断两个字符串是否相等的问题。在编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写。在java中,用的是equals();

    String name = new String("sunzhiyan");
    String age =  new String("sunzhiyan");
    if(name ==age){
    	System.out.print("相等");
    }else{
    	System.out.print("不相等");
    }
    

     这里输出结果是:不相等,因为new出来的话会申请不同的地址,而==号就是比较他们的引用(java没有指针,假设是地址)

    String name = "sunzhiyan";
    String age = "sunzhiyan";
    if(name.equals(age)){
    		System.out.print("相等");
    }else{
    		System.out.print("不相等");
    }
    
    String ss = "duang";
    String ss2 = "duang";
    System.out.println(ss);
    if(ss == ss2){
        System.out.println("YYYYY");
    }

    这里比较值肯定是相等的,相同的字符串在内存中只会 有一份,所以,这里用"==" 是true,不过要明白这里比较的是引用。

     这里会相等,因为java默认字符串是常量,也就是说a和b的地址(java没有指针,假设是地址)一致

    而使用

    注意:

    equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。

  • 相关阅读:
    ACM Red and Black
    ACM Wooden Stricks
    ACM Strange fuction
    ACM pie
    ACM Doing Homework again
    ACM FatMouse' Trade
    ACM 今年暑假不AC
    ACM Ignatius and the Princess II
    一、数组---第三大的数
    一、数组---移动零※※※※※※
  • 原文地址:https://www.cnblogs.com/sunxun/p/4262429.html
Copyright © 2011-2022 走看看