您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页String的equals()方法源码解析

String的equals()方法源码解析

来源:爱玩科技网

每个String对象在创建的时候都构造了一个char类型的final声明的不可替换数组,数组中的每一个元素即字符串对应的每一个字符如图:

String的equals()在比较的时候会进行两步比较:

2、比较字符串的内容是否相同,也就是比较每个char是否相同。

代码如下:

 1 public boolean equals(
 2     Object anObject // 传入比较的字符串
 3     ) {
 4     // 先比较对象地址是否相等--------------------------
 5     if (this == anObject) { // 比较地址是否相同
 6         return true;
 7     }
 8     // 再比较字符串内容是否相等------------------------
 9     if (anObject instanceof String) { // 入参如果是字符串
10         String anotherString = (String)anObject; // 强转
11         int n = value.length; // 获取当前字符串的字符数组长度
12         if (n == anotherString.value.length) { // 如果当前字符数组长度等于入参的字符数组长度
13             char v1[] = value; 
14             char v2[] = anotherString.value;
15             int i = 0;
16             while (n-- != 0) { // 从n -> 1循环
17                 if (v1[i] != v2[i]) // 比较每一个基本char数据类型是否不等
18                     return false;
19                 i++; // 由0到n-1循环
20             }
21             return true; // 全部字符相等
22         }
23     }
24     return false;
25 }

2、当入参是一个字符串的时候向下强转成字符串,且在while循环里面比较字符串中value数组每个字符是否相等,如果全部相等则表示内容相等,返回true;

 

转载于:https://www.cnblogs.com/lay2017/p/10755099.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务