java 中字符串比较大小

转载 2018年04月16日 16:37:21
在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()

组合语言之艺术3

 第二章    准备工作 第一节  系统一、系统之选择    只因真正了解电脑的人太少,迷信名气的结果,使得 IBM PC/AT占有了市场。为求电脑普及应用,我们唯有因陋就简,针对 IBM PC/AT...
  • dot99
  • dot99
  • 2001-08-04 22:19:00
  • 1336

Java 比较字符串之间大小

LZ-Says:心态调整好~啥事儿都得开开心心的~ 前言公司让实现一个自动清除1小时内数据,SQL不熟悉,无奈之下,只能本地DB存储当前时间+小时去和当前时间进行比对。折腾好半天,突然想到Java提供...
  • u012400885
  • u012400885
  • 2017-03-28 23:44:14
  • 3418

Java:日期字符串格式大小比较

比较两个日期的大小,字符串格式的public class Timetest { public static void main(String[] args) { // TODO...
  • qq_17326933
  • qq_17326933
  • 2015-08-12 22:11:37
  • 15459

java数字字符串比较大小

String maxTotalValue = "0";             for (int i = 0; i                 String calResult = exeT...
  • xieyuntestShow
  • xieyuntestShow
  • 2012-05-04 14:42:49
  • 14702

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

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

java字符串比较大小

public int compareTo(String anotherString)按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与...
  • c5153000
  • c5153000
  • 2011-02-28 15:55:00
  • 35928

Collator类 比较字符串(汉字大小)

Collator 类执行区分语言环境的 String 比较。使用此类可为自然语言文本构建搜索和排序例程。  Collator 是一个抽象基类。其子类实现具体的整理策略。Java 平台目前提供了 Rul...
  • benxiaohai888
  • benxiaohai888
  • 2017-08-07 21:58:15
  • 394

java中两个字符串如何比较大小

有两个日期 如20131011,20131030,类型为String,如何比较出20131030大于20131011,求java代码 有三种方法实现第一种直接用字符串类的compar...
  • hjm4702192
  • hjm4702192
  • 2014-03-28 16:22:53
  • 3558

【js】日期字符串比较大小

/* 日期字符串比较大小 */ function compareDate(DateOne, DateTwo) { var OneMonth = DateOne.substring(...
  • xuexiiphone
  • xuexiiphone
  • 2017-05-09 16:11:17
  • 482

两个字符串比较大小

两个字符串比较大小:    一、可以用compareTo()方法,另外还有compareToIgnoreCase(String) 忽略大小写及 compareTo(object string)这些 方...
  • justDoItfl
  • justDoItfl
  • 2018-03-02 14:36:00
  • 901
收藏助手
不良信息举报
您举报文章:java 中字符串比较大小
举报原因:
原因补充:

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