`
gaosililn
  • 浏览: 73068 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

equals(),equalsIgnoreCase().compareTo()以及==de 的区别

    博客分类:
  • Java
阅读更多

想在字符串中,要是相比较两个字符串常用的有几种方法:1、==;2、equals();3、 equalsIgnoreCase();4、compareTo();
第一种方法:==是用来比较两个字符串的地址是否相等;
第二种方法:在没被重写的情况还是==对比(Object里); 
第三种方法:与第二种方法类似,但是不区分大小写;
第四种方法:比较两字符串的大小并返回两字符串的长度差或者第一个不同的字符的unicode码值差。
下面我们看一下简单的实例来说明;

第一种方法:==

public class String_1 {

	public  static void main(String []arg){
		String a="abcdef";
		String b="abcdef";
		if(a==b){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
	
}
 
public class String_1 {
	String a="abcd";

}
/////////////
public class String_2 {
	String b="abcd";
}
///////////////
public class Text {
	public  static void main(String []arg){
		String_1 st1=new String_1();
		String_2 st2=new String_2();
		if(st1.a==st2.b){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
}

 

 //上面的输出的结果都是:a==b
为什么上面的输出时a==b呢?因为在Java中,数值相同的常量是放在同一内存地址,将其赋值给a、b时候就是把字符串的内存地址引索给了他们。所以a,b比较实质是比较相同的地址。

再看下面:

public class Text {
	public  static void main(String []arg){
		String a=new String(a="abcd");
		String b=new String(b="abcd");
		if(a==b){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
}

 

这一段代码的输出结果是:a!=b;这是因为a,b是两个对象的存放,两对象的地址不一样。
第二种方法:equals();
public class Text {
	public  static void main(String []arg){
		String a=new String(a="abcd");
		String b=new String(b="abcd");
		if(a.equals(b)){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
}
 
public class Text {
	public  static void main(String []arg){
		String a="abcd";
		String b="abcd";
		if(a.equals(b)){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
}
 上面的输出结果都是:a==b;在上面比较==时候已经看到两段代码的结果是不一样的,是因为他们的地址引索不一样,而equals();比较的结果却是一样的,是因为他们的值都一样。当他们字符串的赋值不一样时候
public class Text {
	public  static void main(String []arg){
		String a="abcd";
		String b="Abcd";
		if(a.equals(b)){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
}
 输出的结果:a!=b;
方法三:equalsIgnoreCase();
他是比较两字符串,不区分大小写;
public class Text {
	public  static void main(String []arg){
		String a="abcd";
		String b="Abcd";
		if(a.equalsIgnoreCase(b)){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
}
 输出的结果是:a==b;
public class Text {
	public  static void main(String []arg){
		String a="abcd";
		String b="bcd";
		if(a.equalsIgnoreCase(b)){
			System.out.println("a==b");
		}
		else{
			System.out.println("a!=b");
		}
	}
}
 输出结果是:a!=b;
第四种方法:compareTo();这是用来比较当前字符串与摸字符串的大小,返回两字符串的长度差或者第一个出现不同的字符的unicode值之差。
public class Text {
	public  static void main(String []arg){
		int n;
		String a="abcd";
		String b="abcdefgh";
		n=a.compareTo(b);
		System.out.println(n);
	}
}
 输出结果:-4;
public class Text {
	public  static void main(String []arg){
		int n;
		String a="abcd";
		String b="abcdefgh";
		n=b.compareTo(b);
		System.out.println(n);
	}
}
 输出结果:0;
public class Text {
	public  static void main(String []arg){
		int n;
		String a="abcd";
		String b="abcdefgh";
		n=b.compareTo(a);
		System.out.println(n);
	}
}
 输出结果:4;
public class Text {
	public  static void main(String []arg){
		int n;
		String a="abcdefgh";
		String b="Abcdefgh";
		n=b.compareTo(a);
		System.out.println(n);
	}
}
 输出结果是:-32;
小弟初学Java不到两个月,有啥错误的或者有啥不足的请求大神、大牛指出微笑
 
分享到:
评论
1 楼 朋在无锡 2015-01-09  
去看看effient java上面讲的很细,你这个还不全.如果比较float和double不能使用==

相关推荐

    字符串比较之 “==”和 “equals”

    "=="和"equals()"是两种常用的字符串比较方法,但它们之间存在一定的区别和使用场景。这篇博客将深入探讨这两个方法的工作原理以及何时应该使用它们。 首先,"=="运算符在Java中主要用于比较基本类型变量的值,如...

    Java开发者的十大戒律

    if (A.S_CONSTANT_ABC.equalsIgnoreCase(sParam1)) { return true; } return false; } } ``` 在这个例子中,通过定义`S_CONSTANT_ABC`作为常量,当需要更改比较的字符串时,只需在一处修改即可。这有助于减少...

    java中常用的字符串的截取方法

    equals() 方法用于比较两个字符串是否相等,equalsIgnoreCase() 方法用于比较两个字符串是否相等,忽略大小写。例如: String s1="Hello"; String s2="hello"; System.out.println(s1.equals(s2)); // false System...

    java编程规范

    if(newStatusCode.equals("SD") && (sellOffDate == null || todayDate.compareTo(sellOffDate) <= 0 || (lastUsedDate != null && todayDate.compareTo(lastUsedDate) <= 0)) || newStatusCode.equals("OBS") && ...

    java中常用的字符串的截取方法.docx

    6. equals() 和 equalsIgnoreCase() 方法:比较两个字符串 equals() 方法比较两个字符串是否相等,而 equalsIgnoreCase() 方法忽略大小写比较两个字符串是否相等。例如,String s1="Hello"; String s2="hello"; s1....

    java常用字符串函数集锦

    equals() 函数用于比较两个字符串是否相同,equalsIgnoreCase() 函数用于忽略大小写比较两个字符串是否相同。 例如:String s1 = "Hello"; String s2 = new String(s1); System.out.println(s1.equals(s2)); // ...

    java 字符串间的比较

    在实际编程中,选择哪种方法取决于具体需求,如是否区分大小写、比较的依据(内容还是引用)以及是否关心性能。在分析`StringDemo_05.java`代码时,我们可以看到如何在实际应用中使用这些方法。同时,`Java.jpg`可能...

    java学习源码,很好的资料,很全的资料

    System.out.println("s2.equalsIgnoreCase(s3) is " + s2.equalsIgnoreCase(s3)); ``` `s2`和`s3`的大小写不同,但内容相同,因此`equalsIgnoreCase`返回`true`。 4. **部分字符串比较(regionMatches)**:该...

    Java 实例 - 字符串比较源代码-详细教程.zip

    7. **equalsIgnoreCase()**:这个方法与`equals()`类似,但它忽略字符串的大小写。 8. **compareTo()** 和 `Collator`:对于更复杂的比较需求,如本地化字符串比较,可以使用`Collator`类,它提供了对字符串的区域...

    Java开发者需坚守的十大基本准则

    if(newStatusCode.equals("SD")&&(sellOffDate==null||todayDate.compareTo(sellOffDate)<=0||(lastUsedDate!=null&&todayDate.compareTo(lastUsedDate)<=0))) { newStatusCode="NYP"; } else if(newStatusCode....

    JAVA字符串处理函数列表一览.

    `equals()` 和 `equalsIgnoreCase()` 用于比较两个字符串是否相等。 - `equals()` 比较时区分大小写。 - `equalsIgnoreCase()` 比较时不区分大小写。 ```java String s1 = "Hello"; String s2 = "hello"; System.out...

    java中String的常用方法.doc

    6. `equals()` 和 `equalsIgnoreCase()`:`equals()`用于比较两个字符串的内容是否相同,`equalsIgnoreCase()`忽略大小写进行比较。例如: ```java String s1 = "Hello"; String s2 = new String(s1); System....

    Java中的字符串比较

    在Java编程语言中,字符串是比较常见且重要的数据类型。字符串比较是编程中常见的操作,...在涉及到字符串比较时,建议优先使用`equals()`或`equalsIgnoreCase()`,以确保正确地比较字符串的内容,而不是它们的引用。

    常用字符串操作的实现方式

    3、 使用compareTo方法:int compareResult = str1.compareTo(str2); 如果compareResult > 0,则str1在字典顺序上大于str2;如果compareResult ,则str1小于str2;如果compareResult == 0,则str1等于str2。 六、...

    有关Java String常用方法的总结.docx

    通过以上的介绍和示例,我们可以了解到`String`类在Java中的强大功能以及使用时需要注意的一些细节。正确地理解和使用`String`类及其方法能够帮助我们在实际编程中更加高效地处理字符串相关的任务。

    Java String类常用的方法.docx

    5. `equals(Object obj)`和`equalsIgnoreCase(String str)`方法:用于比较两个字符串的内容是否相同。`equals()`区分大小写,`equalsIgnoreCase()`不区分。比如,`"hello".equals("Hello")`返回true,而`"hello"....

    JAVA常见字符串函数.doc

    System.out.println(str.compareTo("I")); 结果-1,表示 "Hello,World!" 小于 "I"。 3. compareToIgnoreCase(String str) 函数:该函数用于比较两个字符串的大小,但是忽略大小写。返回值大于0,表示大于;返回值...

Global site tag (gtag.js) - Google Analytics