广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中字符串恒等判断
  • 896
分享到

java中字符串恒等判断

java字符串恒等 2016-10-15 11:10:56 896人浏览 才女
摘要

1. 起因:字符串恒等判断//String is reference type String str1 = new String("hello"); String str2 = new String("hello"); System.o

1. 起因:字符串恒等判断

//String is reference type
String str1 = new String("hello");
String str2 = new String("hello");
 
System.out.println(str1==str2);
// false
System.out.println(str1.equals(str2));
// true

在线学习视频分享:java在线学习

2. 关系操作符 “==”

要点:“==”只可以处理基本数据类型对应值的恒等判断,不适用引用数据类型(其值存的是地址)

public class Main {
    public static void main(String[] args) {
        int n=3;
        int m=3;
// true
        System.out.println(n==m);
 
        String str = new String("hello");
        String str1 = new String("hello");
        String str2 = new String("hello");
// false
        System.out.println(str1==str2);
 
        str1 = str;
        str2 = str;
// true
        System.out.println(str1==str2);
 
    }
}

n==m结果为true,这个很容易理解,变量n和变量m存储的值都为3,肯定是相等的。而为什么str1和str2两次比较的结果不同?要理解这个其实只需要理解基本数据类型变量和非基本数据类型变量的区别。

Java中的8个基本数据类型

浮点型:float, double;整型:byte, short, int , long; 字符型: char; 布尔型: boolean。

对于这8种基本数据类型的变量,变量直接存储的是“值”,因此在用关系操作符==来进行比较时,比较的就是 “值” 本身。要注意浮点型和整型都是有符号类型的,而char是无符号类型的.

对于非基本数据类型的变量(引用类型),如String类型,引用类型的变量存储的并不是 “值”本身,而是与其关联的对象在内存中的地址。如,str1并不是直接存储的字符串"hello",而是该对象所对应的地址。

因此在用==对str1和str2进行第一次比较时,得到的结果是false。因为它们分别指向的是不同的对象,也就是说它们实际存储的内存地址不同。 而在第二次比较时,str1和str2同时指向了str指向的对象,那么得到的结果毫无疑问是true(地址相同)。

3. Object方法 “equals()”

equals方法是基类Object中的方法,因此对于所有的继承于Object的类都会有该方法。 在Object类中,equals方法是用来比较两个对象的引用是否相等,即是否指向同一个对象.

public class Main {
    public static void main(String[] args) {
        String str1 = new String("hello");
        String str2 = new String("hello");
// true
        System.out.println(str1.equals(str2));
 
    }
}

String类对equals方法进行了重写,用来比较指向的字符串对象所存储的字符串是否相等。 其他的一些类诸如Double,Date,Integer等,都对equals方法进行了重写用来比较指向的对象所存储的内容是否相等。

小结:

对于==:如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址

对于equals方法:如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; 诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容(equals方法不能作用于基本数据类型的变量)。

更多相关文章教程请访问:java入门

--结束END--

本文标题: java中字符串恒等判断

本文链接: https://www.lsjlt.com/news/1812.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中字符串恒等判断
    1. 起因:字符串恒等判断//String is reference type String str1 = new String("hello"); String str2 = new String("hello"); System.o...
    99+
    2016-10-15
    java 字符串 恒等
  • java判断字符串是否相等
    ==比较引用,equals 比较值。1、java中字符串的比较:==我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题。example1:String a="abc";String b="abc"那么a==...
    99+
    2017-07-13
    java 判断 字符串 相等
  • java怎么判断字符串相等
    在Java中,可以使用`equals()`方法来判断两个字符串是否相等。`equals()`方法是String类的一个成员方法,它比...
    99+
    2023-09-05
    java
  • java中字符串不等于怎么判断
    java中字符串不等于可以使用equals()方法判断,equals()方法用于将字符串与指定的对象比较。语法public boolean equals(Object anObject)参数anObject -- 与字符串进行比较的对象。返...
    99+
    2021-02-01
    java 字符串
  • java中如何判断字符串是否相等
    方法:boolean equals(object obj);测试:首先,随便创建一个有main方法的类然后定义两个值相等的字符串变量a和b,都是“baidu ABC 我”然后就是用boolean equals(object obj); 来判...
    99+
    2020-02-09
    java 判断 字符串 相等
  • java如何判断字符串是否相等?
    java如何判断字符串是否相等?下面本篇文章就来给大家介绍一下使用java判断字符串是否相等的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。1、java中字符串的比较:==我们经常习惯性的写上if(str1==str...
    99+
    2019-10-06
    java教程 java
  • java中判断字符串是否相等的方法
    1、java中字符串的比较:==我们经常习惯性的写上if(str1==str2),但是这种写法在java中可能会带来问题。示例:String a="abc";String b="abc"那么a==b将返回true。因为在java中字符串的值...
    99+
    2016-04-20
    java 判断 字符串 相等
  • java使用if判断字符串是否相等
    java使用if判断字符串是否相等的方法:public class TestCode { public static void main(String [] args){ String a = "abcdb"; String b = "b...
    99+
    2019-12-31
    java 字符串
  • java判断字符串是否相等的方法
    java判断字符串是否相等的方法:java中字符串的比较:==我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题 example1:String a="abc"; String b="abc"那么a==b将...
    99+
    2016-04-26
    java 字符串
  • java判断字符串是否不相等的方法
    判断地址是否相等 用:==Object类作为所有类的超类,而Object类的equals方法是直接比较地址的,源码如下:public boolean equals(Object obj) { return th...
    99+
    2017-12-05
    java
  • php中如何判断两个字符串等不等于
    这篇文章主要介绍“php中如何判断两个字符串等不等于”,在日常操作中,相信很多人在php中如何判断两个字符串等不等于问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中如何判断两个字符串等不等于”的疑惑有所...
    99+
    2023-06-29
  • php中怎么判断两个字符串等不等于(相等)
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php中判断字符串等不等于(相等)方法1:使用“===”运算符“===”是全等运算符,如果 $a 和 $b 不仅值相等,而且它们值的类型也相等,则返回 TRUE,否则返...
    99+
    2016-08-12
    php 字符串比较
  • java判断字符串是否包含某字符(串)
    java判断字符串是否包含某字符串的方法:1、startsWith()这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开始位置此方法定义的语法如下:public boolean startsWith(St...
    99+
    2020-02-16
    java基础 java
  • java使用if语句判断字符串是否相等
    java中的字符串比较不能直接用”==”,而要用equals(),返回true为两字符串相等,返回false为两字符串不相等,举个例子:(推荐学习:java视频教程)if (s1.equals(s2)) { System.out.prin...
    99+
    2019-10-05
    java if 判断 字符串 相等
  • perl如何判断字符串是否相等
    在Perl中,你可以使用`eq`运算符来判断两个字符串是否相等。这个运算符返回一个布尔值,如果两个字符串相等则返回`1`,否则返回`...
    99+
    2023-10-07
    perl
  • javascript如何判断字符串相不相等
    这篇文章主要介绍“javascript如何判断字符串相不相等”,在日常操作中,相信很多人在javascript如何判断字符串相不相等问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • mysql如何判断两个字符串相等
    mysql中判断两个字符串是否相等的方法直接比较字符串如比较字符串p1与p2是否相等SELECT * FROM E p1,C p2 WHERE p1.FIRSTNAME=p2.FIRSTNAME;将字符串转换成二进制在比较是...
    99+
    2022-10-22
  • php如何判断两个字符串相等
    在php中使用strcmp()函数判断两个字符串是否相等,具体方法如下:strcmp()函数作用:php中strcmp()函数的作用是用于比较两个字符串。strcmp()函数语法:strcmp(string1,string2)参数:stri...
    99+
    2022-10-13
  • java判断字符串是否包含字符
    java判断字符串是否包含字符判断一个字符串是否包含某个子串的3种方法(推荐教程:java教程)一、startsWith()这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开始位置此方法定义的语法如下:p...
    99+
    2021-10-30
    java基础 java 字符串 包含字符
  • java中判断字符串是否是数字
    java中判断字符串是否是数字的方法如下:1、用Java自带的方法Java中有一个Character.isDig(char ch) public class CheckStrIsNum { public stat...
    99+
    2017-05-08
    java 字符串
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作