public int compareTo(String anotherString)
文档描述:
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,那么它们要么在某个索引处的字符不同(该索引对二者均为有效索引),要么长度不同,或者同时具备这两种情况。如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值;则在位置 k 上具有较小值的那个字符串(使用 < 运算符确定),其字典顺序在其他字符串之前。在这种情况下,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:
this.charAt(k)-anotherString.charAt(k)
如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差,即值:
this.length()-anotherString.length()
是这么回事:
当前String对象与anotherString比较,相等关系返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不想等的字符差,即this.charAt(k)-anotherString.charAt(k);另一种情况较长字符串的前面部分恰巧是较短字符串,返回它们的长度差,即this.length()-anotherString.length()。
模仿C语言中的strcompare方法:
public static void main(String[] args)
{
String str1="abc";
String str2="abccc";
System.out.println(Zzz.strCompare(str1, str2));
}
public static int strCompare(String str1,String str2)
{
char[] cs1=str1.toCharArray();
char[] cs2=str2.toCharArray();
int length=Math.min(cs1.length, cs2.length);
for(int i=0;i<length;i++)
{
int result=cs1[i]-cs2[i];
if(result<0)
{
return 1;
}
if(result>0)
{
return -1;
}
}
if(cs1.length!=cs2.length)
{
int result=cs1.length-cs2.length;
if(result>0)
{
return -1;
}
if(result<0)
{
return 1;
}
}
return 0;
}
分享到:
相关推荐
关于重写equals、hashcode以及compareTo方法! equals()方法是Object类中的一个方法,它用于比较两个对象是否相等。然而,它的默认实现是比较对象的引用(地址),而不是比较对象的实际内容。因此,在某些情况下,...
主要介绍了String类下compareTo()与compare()方法比较的相关资料,需要的朋友可以参考下
主要给大家介绍了关于java源码解析之String类的compareTo(String otherString)方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
String的常用方法归纳与总结 char charAt(int index) 返回指定索引处的 char 值。 int compareTo(Object o) 把这个字符串和另一个对象比较。 int compareTo(String anotherString) 按字典顺序比较两个字符串。 int ...
自然排序:TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列。 定制排序:在创建TreeSet集合对象时,并提供一个Comparator接口实现类对象与该TreeSet集合...
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。...compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。
6.1.1 字符串比较 Java语言程序设计(第3版) 比较大小: int compareTo(String str) 小于,返回值小于0 等于,返回值等于0 大于,返回值大于0 判断前缀、后缀和包含 boolean startsWith(String prefix) boolean ...
70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 71、说出一些常用的类,包,接口,请各举5个 72、java中有几种...
Java学习之 手撕StringJava中非常非常重要的String类所属的包继承关系String对象的构建String类的特性String类的不可变性String类中常用的方法(20+个)equals()equalsIgnoreCase()hashCode()toString()compareTo()...
public static int compareTo(String date1,String date2){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); int date = 0; try { Date d1 = sdf.parse(date1); Date d2 = sdf.parse(date...
城市就是森林,每一个男人都是猎手,...这里使用的sort方法的参数类型是Comparator,我们就是把Lambda表达式作为Comparator传入sort方法中的。Comparator就是一个函数式接口,那么什么是函数式接口? 函数式接口 函数式
10、compareTo()和compareToIgnoreCase() 比较字符串 11、indexOf()和lastIndexOf() indexOf() 查找字符或者子串第一次出现的地方。 lastIndexOf() 查找字符或者子串是后一次出现的地方。 12、substring() ...
让Employee继承IComparable 接口,实现CompareTo方法排序2.定义一个方法使用Comparison委托,排序的操作交给匿名方法 看完下面的代码,你知道使用Comparison委托的好处吗? 代码如下: class Employee:IComparable ...
int compareTo(Circle another) (7) 提供返回当前圆的字符串的方法,格式为:[Circle(x,y)-raduis] String toString() 二、定义一个包含main方法的类TestCircle,位于shape包中。要求如下: (1) main方法中...
方法: {dtor}() {dtor}() {dtor}() {dtor}() ApplyPaperOrientationTransform(Viewport) ApplyPartialUndo(DwgFiler,RXClass) Audit(AuditInfo) Cancel() Close() CloseAndPage(Boolean) CopyFrom...
实验1 String类的常用方法 19 实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件及事件处理2 31 实验1 方程求根 31...
package ms; ... private static String botTyp2(String BotName) { int k=BotName.indexOf("."); if (k != -1) { return BotName.substring(0, k); } else return BotName; } }
package ms; ... private static String botTyp2(String BotName) { int k=BotName.indexOf("."); if (k != -1) { return BotName.substring(0, k); } else return BotName; } }
Map<String,String> map = new TreeMap<String,String>(new Comparator<String>() { public int compare(String key1, String key2) { return key2.compareTo(key1); } }); ``` 在上面的代码中,我们创建了一个...
实验代码: public class StrPro { public static void main(String[] args) { String str[] = new String[5]; System.out.println("Please input 10 strings:"); int i; String max,min; for(i=0;i;i++){ System....