compareTo:比较
compareToIgnoreCase:比较,忽略大小写
如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。
例:字典的顺序:0123456ABCabc 大写字母在小写字母前
String query = new String()
String number = new String()
int i = 0
query = “a”
number = “1”
i = query.compareTo(“A”)(a在A之后,返回大于0的值)
i = number.compareTo(“2”)(1在2之前,返回小于0的值)
刚刚接触java。。这里看不懂。。麻烦大虾们解释下。。
String类里的compareToIngoreCase是这样的:
public static final Comparator<String>CASE_INSENSITIVE_ORDER = new CaseInsensitiveComparator()
public int compareToIgnoreCase(String str)
{
return CASE_INSENSITIVE_ORDER.compare(this, str)
}
private static class CaseInsensitiveComparator
implements Comparator<String>, java.io.Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 8575799808933029326L
public int compare(String s1, String s2) {
int n1=s1.length(), n2=s2.length()
for (int i1=0, i2=0i1<n1 &&i2<n2i1++, i2++) {
char c1 = s1.charAt(i1)
char c2 = s2.charAt(i2)
if (c1 != c2) {
c1 = Character.toUpperCase(c1)
c2 = Character.toUpperCase(c2)
if (c1 != c2) {
c1 = Character.toLowerCase(c1)
c2 = Character.toLowerCase(c2)
if (c1 != c2) {
return c1 – c2
}
}
}
}
return n1 – n2
}
}
这是JDK源文件里的
比较的方法就是把两个String截成一个一个char的比较,每个char比较另一个String对应位置里的char,如果两个char都换成大写和都换成小写是一样的话,比较下一个,直到找到两个不一样的char,都转换成小写,然后return相差(ASCII里的值)。如果其中一个或者两个String都比较完了还没有同样的char的话,那就return两个String的长度差距。
其实这个代码还蛮简单的,自己稍微看看就明白了
java 中这句(musics[i].compareToIgnoreCase(music)>0 什么意思啊
compareToIgnoreCase:比较两个字符串不区分大小写,就是按照字母表顺序比较,你懂得。如果books[i]大得话,就返回一个正数,相等的话返回0,小得话返回负数。
Line:是一行,就是把一行作为一个字符串读取进来
在JAVA中多个字符串如何比较大小 ? 急切!!!!
举个例子:如果String music[1] = “music”
String music = “aaaaaa”( 或者String music = “AAAAAA”是一样的,因为它是忽略大小写的)
那么(musics[i].compareToIgnoreCase(music)>0返回的就是true
如果String music = “n”(String music = “N”是一样的)那么返回就是false

哈 昨天刚写 有点出入,我比较大小然后排序了自己看着改一下就是
import java.util.ArrayList
import java.lang.Math
public class SortStrTest{
private String s1,s2
private int flag,y
public ArrayList<String>Sort(ArrayList<String>a)
{
for(int x=0x<a.size()x++)
{
y=a.size()//得出需要比较大小排序的字符串数量
//循环移位比较,冒泡排序
for(int i=0i<y-1i++)
{
s1=a.get(i)
s2=a.get(i+1)
flag=s1.compareToIgnoreCase(s2)//比较字符串大小 忽略大小写,需要不忽略大小写可以去看看关于String的API 里面有方法
if(flag>=0)
{
a.set(i,s2)
a.set(i+1,s1)
}
}
y=y-1
}
return a
}
public static void main(String [] args)
{
//下面这一是用来测试的
SortStrTest so = new SortStrTest()
ArrayList<String>a = new ArrayList<String>(50)
ArrayList<String>b
//随机生成一个需要比较大小并排序的字符串列表
for(int i=0i<50i++)
{
a.add(“”+(char)(Math.random()*26+’A’))
}
//调用排序方法 ,a排序后的结果返回赋值给列表b
b=so.Sort(a)
//打印输入排序结果
for(int j=0j<b.size()j++)
{
System.out.println(b.get(j))
}
///测试结束
}
}
以上就是关于compareTo 和comparetoIgnorecase有啥区别全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
