comparetoignorecase(compareToIgnoreCase)

http://www.itjxue.com  2023-01-30 10:21  来源:未知  点击次数: 

大家帮我解答一下java中比较的疑问

括号中music的位置大于music[i]的位置时返回负值,括号中music的位置小于music[i]的位置时返回正值,不知道这样说能解答你的困惑么?自己试一下 就OK了。

java 中这句(musics[i].compareToIgnoreCase(music)>0 什么意思啊

举个例子:如果String music[1] = “music” ;

String music = "aaaaaa";( 或者String music = "AAAAAA"是一样的,因为它是忽略大小写的)

那么(musics[i].compareToIgnoreCase(music)0返回的就是true;

如果String music = "n";(String music = "N"是一样的)那么返回就是false;

刚刚接触java。。这里看不懂。。麻烦大虾们解释下。。

compareToIgnoreCase:比较两个字符串不区分大小写,就是按照字母表顺序比较,你懂得。如果books[i]大得话,就返回一个正数,相等的话返回0,小得话返回负数。

Line:是一行,就是把一行作为一个字符串读取进来

if(musics[i].compareToIgnoreCase(music)>0) 请问这个代码比较的到底是 musics[i]>music

先比较

musics[i].compareToIgnoreCase(music),这个结果应该返回的是一个数字,

然后比较上面得到的数字和0的比较结果

java中compareToIgnoreCase大小是怎么比较的

String类里的compareToIngoreCase是这样的:

public static final ComparatorString CASE_INSENSITIVE_ORDER = new CaseInsensitiveComparator();

public int compareToIgnoreCase(String str)

{

return CASE_INSENSITIVE_ORDER.compare(this, str);

}

private static class CaseInsensitiveComparator

implements ComparatorString, 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=0; i1n1 i2n2; i1++, 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的长度差距。

其实这个代码还蛮简单的,自己稍微看看就明白了

compareTo 和comparetoIgnorecase有啥区别

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的值)

(责任编辑:IT教学网)

更多

相关编程综合文章

推荐编程综合文章