java字符串比较和jdkequals源码分析
2016-02-17 00:00
591 查看
package com.cnse.demo; /** * 比较两个字符串相等 */ public class StringTest { public static void main(String[] args) { int checkLength = 0; String str="好人"; String in="好人"; if(str.equals(in)){ System.out.println("equals比较::"+Boolean.valueOf(str.equals(in))); } char[] strarray=str.toCharArray(); char[]inarray=in.toCharArray(); for (int i = 0; i < inarray.length; i++) { for (int j = 0; j < strarray.length; j++) { if (inarray[i] == strarray[j]) { System.out.println("charArray比较::"+Boolean.valueOf(inarray[i] == strarray[j])); System.out.println("两个字符串相等"); System.out.println(inarray[i] +":::::in::::测试字符串::"+strarray[j]); checkLength++; break; } } } } } //java的equeals源码分析 //考虑的比较全面 public boolean equals(Object anObject) { //先考虑的是否是同一个对象 if (this == anObject) { return true; } //不同的对象 if (anObject instanceof String) { String anotherString = (String) anObject; //长度相同时 int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; //使用的是i-- 把字符倒着比较 int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
相关文章推荐
- java冒泡排序简单理解
- java数据库连接工具类
- (java) Divide Two Integers
- java计划任务
- JAVA中MAVEN的使用
- JAVA依托axis2实现计划任务
- JAVA类的继承派生
- JAVA多线程
- java 遍历arrayList的四种方法
- java解析json字符串
- JAVA遍历HASHMAP
- 40个JAVA问题
- eclipse中使用ctrl无法追踪函数(右键无法定位到相应的类)解决方案
- 内存管理机制-JVM 垃圾回收算法
- Java代码块
- 转: Rest简介及Spring实现
- 关于字符串的几个常见问题
- 全排列的递归实现(java代码)
- eclipse里怎么用命令行输入args
- 从头认识Spring-2.6 在注解中使用表达式@Value(2)-使用表达式注入其他对象的值