Java中字符串相等与大小比较

转载 2016年02月18日 03:51:38
在C++中,两个字符串比较的代码可以为:
(string1==string2)
但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false
Java中必须使用string1.equals(string2)来进行判断

补充

如果:
string s1="Hello";
string s2="Hello";
则(s1==s2)=true;
因为他们指向的同一个对象。

如果:
String s1=new String("Hello");
String s2=new String("Hello");
则(s1==s2)=false

如果把其他变量的值赋给s1和s2,即使内容相同,由于不是指向同一个对象,也会返回false。所以建议使用equals(),因为equals比较的才是真正的内容

例如:
String string1=new String( "aaa" );
String string2=new String( "aaa" );
这两个字符串当然应该是相等的。
如果用表达式string1==string2,则该表达式的值为false
如果用表达式string1.equals(string2),则该表达式的值为true
因此应该用string1.equals(string2),在if语句中就是
if(string1.equals(string2)==true) //字符串相等,……

string1==string2,是值相等,而且内存地址也相等,是完全的相等
string1.equals(string2)为true,只是值相等


如果比较字符串的大小使用:str1.compareTo(String str2)


按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0compareTo 只在方法 equals(Object) 返回 true 时才返回 0。
这 是字典排序的定义。如果这两个字符串不同,那么它们要么在某个索引处的字符不同(该索引对二者均为有效索引),要么长度不同,或者同时具备这两种情况。如 果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值;则在位置 k 上具有较小值的那个字符串(使用 < 运算符确定),其字典顺序在其他字符串之前。在这种情况下,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:

this.charAt(k)-anotherString.charAt(k)

如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差,即值:

this.length()-anotherString.length()


相关文章推荐

java简单的字符串大小比较——compareTo()方法

在java编程中,我们会偶尔遇到字符串大小比较的问题,compareTo()方法很简单就实现这种功能。该方法用于判断一个字符串是大于、等于还是小于另一个字符串。判断字符串大小的依据是根据它们在字典中的...

java中两个字符串比较大小

java编程中经常遇到需要比较两个字符串比较大小的需求, 字符串一般分成两类: 第一类:纯数字的字符串,如日期转换的字符串 第二类:非纯数字的字符串。 直接用字符串类的compareTo方法: 如...

从头认识java-15.7 Map(6)-介绍HashMap的工作原理-装载因子与性能

这一章节我们通过讨论装载因子与性能,再来介绍HashMap的工作原理。1.什么是装载因子?他有什么作用?下面的代码就是装载因子 /** * The load factor used when...

【剑指Offer学习】【面试题7:用两个栈实现队列】

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。...

[疯狂Java]面向对象:基本类型的包装器类型、自动装箱/拆箱、包装器类型大小/相等比较

1. 基本类型的包装器类型:     1) Java并不是严格的面向对象语言就是因为存在8中基本类型数据(int、char、double、boolean等),它们并不是类对象;     2) 提供这8...

Java中的字符串比较相等与大小

在C++中,两个字符串比较的代码可以为: (string1==string2) 但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false Java中必须使用string1...

Java中字符串比较相等问题

Java中String比较equals()方法浅析

Java中的字符串大小比较

在java中,这个代码即使在两个字符串完全相同的情况下也会返回false  Java中必须使用string1.equals(string2)来进行判断  补充  如果:  string...

利用随机化的思想比较两个字符串是否相等

对于一般情况,只需利用java中String类型数据的equal方法就可以实现。但对于两个非常长的位于信道两端的长串来说,要比较他们的大小,需要将一个串传至另一端,而将整个串传输不仅占用信道带宽且费时...

Gson:比较两个JSON字符串是否完全相等

RT,比较两个JSON字符串是否完全相等,这里使用google贡献的Gson。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中字符串相等与大小比较
举报原因:
原因补充:

(最多只允许输入30个字)