请问:String.equals()方法与String.comparaTo()有什么区别??? equals: true/falsecompareTo:<0 前者小于后者 =0 equals >0 前者大于后者 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String.equals():判断是否相等,返回一个booleanString.comparaTo():按字符串的比较规则比较大小,返回一个int,int==0的时候相等,int<0的时候前面的值小 我也不知道该怎么说,他们俩的区别我知道,就是会用.但JAVA基类怎么去实现的就看不懂了~它在里面定义了一个私有的COUNT,然后用string.value.length与count来进行比较~!但count与length是啥东东? count是String类的private成员, 存放的是当前String中的字符个数value是char数组, 存放String的每个字符, 那value.length就是数组长度了 由于有offset所以,不等是可能的.解释一下源码 public int compareTo(String anotherString) { int len1 = count; //字符个数 int len2 = anotherString.count; //字符个数 int n = Math.min(len1, len2); //取最短长度 char v1[] = value; //临时变量 char v2[] = anotherString.value; //临时变量 int i = offset; //偏移 int j = anotherString.offset; //偏移 if (i == j) { int k = i; int lim = n + i; while (k < lim) { //逐个字符比较,只比到最短的长度 char c1 = v1[k]; char c2 = v2[k]; if (c1 != c2) { return c1 - c2; //不同, 直接返回结果(>0或者<0) } k++; } } else { //偏移不同, 从偏移处比较, 最多比较n个字符 while (n-- != 0) { char c1 = v1[i++]; char c2 = v2[j++]; if (c1 != c2) { return c1 - c2; } } } return len1 - len2; //如果能执行此句, 说明前面n个字符是相同的.再比较长度即可 } offset = String.length()吗??? 通常offset是0如果你有兴趣,仔细研究一下String.java String.equals()会返回ture(相等)或者false(不相等),String.comparaTo()则是当小于所比较字符串时返回小于零的值若相等返回0,若大于返回大于0的值。over... 我就是今天下午看了一下午的String.java,不明白count,value与offset的值是怎么取的,所以才上CSDN来求助的.看了你刚才帖的代码,我明白多了,多谢你哈^______^ 对不起,最后一个问题~那对于“0.00”来说,它的count和.length()各是多少??? 那这样的话,为什么要多余的定义count或.length()??我定义一个就够了吧?还是说它们俩之间有什么区别??? 关于按钮的action问题 tomcat的问题: 请教:在java中如何得到当前的年、月 为什么我在mysql里定义了char(45)当输入汉字的时候就报错。 jtable的某列如何能自动调整宽度,适合其值 关于JDK1.5的StringBuffer问题 timerTask主要是干什么的? H.M.Deitel/P.J.Deitel 的JAVA程序设计教程(第5版) 怎么样??? 请教JB中资源是怎么回事情? 碰到一个奇怪的问题! 这样的static 也有错?? 大家请看过来.
String.comparaTo():按字符串的比较规则比较大小,返回一个int,int==0的时候相等,int<0的时候前面的值小
它在里面定义了一个私有的COUNT,然后用string.value.length与count来进行比较~!
但count与length是啥东东?
value是char数组, 存放String的每个字符, 那value.length就是数组长度了
public int compareTo(String anotherString) {
int len1 = count; //字符个数
int len2 = anotherString.count; //字符个数
int n = Math.min(len1, len2); //取最短长度
char v1[] = value; //临时变量
char v2[] = anotherString.value; //临时变量
int i = offset; //偏移
int j = anotherString.offset; //偏移 if (i == j) {
int k = i;
int lim = n + i;
while (k < lim) { //逐个字符比较,只比到最短的长度
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2; //不同, 直接返回结果(>0或者<0)
}
k++;
}
}
else { //偏移不同, 从偏移处比较, 最多比较n个字符
while (n-- != 0) {
char c1 = v1[i++];
char c2 = v2[j++];
if (c1 != c2) {
return c1 - c2;
}
}
}
return len1 - len2; //如果能执行此句, 说明前面n个字符是相同的.再比较长度即可
}
String.comparaTo()则是当小于所比较字符串时返回小于零的值
若相等返回0,若大于返回大于0的值。
over...
^______^
那对于“0.00”来说,它的count和.length()各是多少???
还是说它们俩之间有什么区别???