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()方法比较 String类下compareTo()与compare()方法是Java语言中两个常用的比较方法,但它们在使用和实现上存在一定的区别,本文将对这两个方法进行详细的比较和分析。 首先,...
String类的常用方法 String类是Java语言中最基本的类之一,用于处理字符串。字符串是一个字符序列,Java中字符串是不可变的,即创建后不能被修改。下面是String类的常用方法: 1. equals()方法:用于判断两个字符...
- 当你需要根据`height`属性对`AutoStudent`对象列表进行排序时,可以将这个列表添加到实现了自然排序的集合中(如`TreeSet`),Java集合框架会自动调用`compareTo`方法来进行排序。 3. **注意事项**: - 在实现`...
在日常开发中,我们经常会使用这些方法来完成字符串的处理和操作。下面我们将详细介绍Java String类中的常用方法。 charAt方法 charAt方法是String类中的一个基本方法,该方法返回指定位置的代码单元。这个方法的...
以下是对C#中String类常用方法的详细解释和示例: 1. `.ToLower()` 和 `.ToUpper()` 这两个方法用于将字符串转换为小写或大写形式,方便进行大小写的统一处理。 ```csharp string str = "AbC"; string lowerStr...
在Java编程语言中,`compareTo()`方法是`Comparable`接口的一部分,它允许对象进行相互比较。这个方法主要用于排序,特别是当需要自定义排序规则时。本文将深入探讨`compareTo()`方法的使用,包括其基本原理、语法、...
《深入解析Java String类的compareTo(String otherString)方法》 在Java编程中,String类是不可或缺的一部分,它的各种方法在日常开发中被广泛使用。本文将深入探讨String类中的compareTo(String otherString)方法...
在Java编程语言中,`String` 类是处理字符串的核心类,它包含了大量的方法,使得对字符串的操作变得简单而高效。本篇文章将详细讲解`String`类的一些常用方法,并通过具体的例子来展示它们的用法。 1. **创建String...
### String类的方法详解 在Java编程语言中,`String` 类是用于表示不可变文本序列的一个重要类。本文将详细介绍 `String` 类的一些常用方法及其应用场景,并通过示例代码加深理解。 #### 1. `length()` - **功能*...
在 String 类中还存在一个类似的方法 compareToIgnoreCase,这个方法是忽略字符的大小写进行比较,比较的规则和 compareTo 一样。例如: String s = "aBc"; String s1 = "ABC"; int value = s.compareToIgnoreCase...
- `compareTo(String anotherString)`:按照字典顺序比较字符串,返回负数、零或正数表示当前字符串小于、等于或大于另一个字符串。 14. **不可变性** - `String`类是不可变的,这意味着一旦创建,就不能更改...
`compareTo`是`String`类的一个方法,它根据Unicode值比较两个字符串。如果第一个字符串大于第二个字符串,`compareTo`返回正整数;如果两个字符串相等,返回0;如果第一个字符串小于第二个字符串,则返回负整数。在...
这里我们将深入探讨`String`类的一些重要方法及其在Android开发中的应用。 1. **创建与初始化String对象** - `new String()`: 使用此构造函数创建新的字符串对象。 - `""`: 字符串字面量,如`String str = "Hello...
此外,`concat(String str)`连接两个字符串,`compareTo(String anotherString)`按照字典顺序比较字符串,`equals(Object anObject)`检查字符串是否相等,`isEmpty()`判断字符串是否为空。`getBytes()`将字符串转换...
12. **compareTo(String anotherString)** 比较字符串的字典顺序,返回整数值,表示当前字符串与参数字符串的相对顺序。 13. **intern()** 返回字符串池中此字符串的引用。如果池中已存在等价字符串,则返回池中...
以上只是String类中的一部分方法,String类还提供了许多其他有用的方法,如`length()`(获取字符串长度)、`indexOf()`(查找子串首次出现的位置)、`substring()`(提取子字符串)、`trim()`(去除首尾空白)等,...
#### 2.1 使用compareTo方法比较String类型 对于两个String类型的比较,可以使用`compareTo()`方法。该方法返回一个整数值,表示第一个字符串相对于第二个字符串的排序位置。如果第一个字符串小于、等于或大于第二个...
- `compareTo(String anotherString)`:基于字典顺序比较字符串。 4. **字符串连接**: - `concat(String str)`:将给定字符串连接到此字符串的末尾。 - `StringBuilder.append(String str)`:使用`...
- `compareTo(String anotherString)`:基于字典顺序比较字符串。 - `indexOf(String str)`:查找子字符串首次出现的位置。 - `lastIndexOf(String str)`:查找子字符串最后一次出现的位置。 4. **操作方法**: ...